Контрастность и читаемость

Контрастность и читаемость — ключевые аспекты при создании интерактивных пошаговых инструкций с использованием библиотеки Intro.js. Эти параметры напрямую влияют на восприятие информации пользователем и на эффективность обучающих туров. Intro.js предоставляет гибкие инструменты для настройки визуального представления подсказок и выделяемых элементов, что позволяет обеспечить высокий уровень доступности интерфейса.


Настройка фона и подсветки элементов

Intro.js использует оверлей (overlay) для затемнения остальной части страницы, выделяя текущий элемент. По умолчанию цвет оверлея — полупрозрачный черный, что создает контраст с белым текстом подсказки. Для изменения цвета и прозрачности используется объект настроек:

introJs().setOptions({
  overlayOpacity: 0.7, // прозрачность оверлея (0–1)
  overlayColor: 'rgba(0,0,0,0.7)' // цвет оверлея
});

Рекомендации по контрастности:

  • Для темных страниц использовать светлый оверлей или подсветку белым контуром.
  • Для светлых страниц — темный оверлей с ярким текстом подсказки.
  • Обеспечить контраст текста подсказки минимум 4.5:1 с фоном подсказки для соответствия WCAG 2.1.

Настройка текста подсказки

Подсказки в Intro.js создаются в элементах tooltip, которые можно полностью кастомизировать через CSS и настройки:

introJs().setOptions({
  tooltipClass: 'custom-tooltip', // класс для кастомного оформления
  highlightClass: 'custom-highlight' // класс для подсветки
});

CSS для повышения читаемости:

.custom-tooltip {
  background-color: #ffffff;
  color: #333333;
  font-size: 16px;
  line-height: 1.5;
  padding: 15px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

Ключевые моменты:

  • Цвет текста должен быть насыщенным и хорошо читаться на фоне подсказки.
  • Размер шрифта и межстрочный интервал увеличивают восприятие информации.
  • Скругленные углы и тень помогают визуально отделить подсказку от интерфейса.

Подсветка активного элемента

Элемент, к которому привязана подсказка, подсвечивается с помощью рамки или тени. Стандартное поведение Intro.js:

.introjs-helperLayer {
  border: 3px solid #ff9900; // выделение элемента
  border-radius: 6px;
}

Для улучшения контрастности:

  • Выделять элемент ярким цветом, отличающимся от фона страницы.
  • Использовать мягкую тень для создания глубины и отделения от фона.
  • Обеспечить достаточный отступ между подсказкой и элементом, чтобы текст не перекрывался с объектом.

Адаптация подсказок под разные темы

Intro.js поддерживает возможность динамического изменения стиля подсказок в зависимости от темы страницы:

if (document.body.classList.contains('dark-theme')) {
  introJs().setOptions({
    tooltipClass: 'dark-tooltip',
    highlightClass: 'dark-highlight'
  });
} else {
  introJs().setOptions({
    tooltipClass: 'light-tooltip',
    highlightClass: 'light-highlight'
  });
}

Пример CSS для темной темы:

.dark-tooltip {
  background-color: #2c2c2c;
  color: #f0f0f0;
  font-size: 16px;
  line-height: 1.5;
  padding: 15px;
  border-radius: 8px;
}

.dark-highlight {
  box-shadow: 0 0 10px 3px rgba(255, 165, 0, 0.8);
}

Контрастность и фокусировка внимания

Для улучшения читаемости и концентрации внимания важно:

  1. Минимизировать визуальный шум: оверлей затемняет все лишнее, подсветка выделяет целевой элемент.
  2. Контрастный цвет текста подсказки: текст должен быть легко читаемым даже на мобильных устройствах.
  3. Последовательность визуальных подсказок: одинаковые цвета и шрифты создают привычный паттерн для пользователя.
  4. Использование анимаций: плавное появление подсказок и оверлея помогает удерживать внимание, но не отвлекает.
introJs().setOptions({
  showStepNumbers: true,
  showProgress: true,
  exitOnOverlayClick: false,
  scrollToElement: true
});

Эти настройки обеспечивают плавное фокусирование на активных элементах и удержание внимания пользователя на ключевой информации.


Доступность и соблюдение стандартов

Контрастность и читаемость напрямую связаны с доступностью (a11y). Intro.js можно использовать в связке с:

  • ARIA-атрибутами: aria-describedby для подсказок.
  • Тестированием контраста текста на соответствие WCAG 2.1.
  • Увеличением размера шрифта и интервалов для людей с нарушениями зрения.
introJs().setOptions({
  tooltipPosition: 'auto',
  tooltipClass: 'accessible-tooltip'
});

CSS:

.accessible-tooltip {
  font-size: 18px;
  color: #000000;
  background-color: #ffffff;
  padding: 16px;
  line-height: 1.6;
}

Использование этих подходов гарантирует, что инструкции будут читабельными, понятными и комфортными для всех пользователей, независимо от условий освещения и индивидуальных особенностей зрения.