Генератор доступного CSS-спиннера

Далее

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

Как сделать спиннер доступным

  1. 1

    Создайте кольцо

    Задайте размер, толщину, цвет и скорость в инструменте, затем скопируйте CSS.

  2. 2

    Проверьте контраст цвета

    Выберите цвет дуги, который хорошо выделяется на светло-сером треке и на фоне страницы.

  3. 3

    Добавьте разметку статуса

    Укажите роль и подпись для элемента спиннера, как показано на этой странице.

  4. 4

    Добавьте правило для уменьшенного движения

    Вставьте медиазапрос ниже сгенерированного CSS.

Что делает сгенерированный CSS и что он не охватывает

Инструмент создает визуальную часть: окружность с рамкой и поворот. Чисто визуальный индикатор ничего не значит для вспомогательных технологий, потому что элемент пуст. Доступность обеспечивают разметка и одно дополнительное правило CSS, которое вы добавляете вокруг нее.

Разметка, которая сообщает о состоянии

<div class="loader" role="status" aria-label="Загрузка результатов"></div>

role="status" помечает элемент как динамическую область, поэтому многие программы чтения с экрана озвучивают его подпись при появлении. aria-label должна описывать, что загружается, например «Загрузка результатов» или «Сохранение», а не общее слово. Удалите элемент, когда работа завершена, и покажите новый контент.

Можно также вывести видимый текст рядом с кольцом. Видимый текст помогает всем, в том числе тем, кто плохо воспринимает движение.

Учитывайте уменьшенное движение

Некоторые посетители включают системную настройку, которая просит сайты ограничивать анимацию. Учтите ее с помощью медиазапроса, размещенного после сгенерированного CSS:

@media (prefers-reduced-motion: reduce) {
  .loader {
    animation-duration: 3s;
  }
}

Это замедляет вращение вместо того, чтобы его убрать, поэтому индикатор по-прежнему выглядит живым, но без быстрого движения. Если вы предпочитаете статичный сигнал, используйте animation: none; и покажите рядом с кольцом текст «Загрузка».

Чек-лист контраста и размера

Проверка К чему стремиться
Дуга на фоне страницы Хорошо видна, желательно соотношение контраста 3:1 или выше
Дуга на сером треке Отличима, чтобы дугу можно было проследить глазами
Размер Не менее 24 px для элементов, которые пользователь должен заметить
Скорость От 0,8 до 1,5 секунды на один оборот

Ограничения

  • Генератор сам выбирает цвет трека (#eee). Измените его в скопированном CSS, если фон страницы похож на него.
  • Слишком малое значение скорости заставляет кольцо мерцать. Не используйте значения меньше примерно 0,5 секунды.
  • Не полагайтесь только на спиннер при долгом ожидании. Сообщите пользователю текстом, что происходит.

Быстрая проверка

Включите в операционной системе настройку уменьшенного движения и перезагрузите страницу: кольцо должно вращаться медленнее. Затем перемещайтесь по странице клавишей Tab и убедитесь, что спиннер никогда не забирает фокус у элемента управления, которым пользовался посетитель. Наконец, включите программу чтения с экрана и один раз вызовите состояние загрузки: проверьте, озвучивается ли подпись при появлении элемента и доступен ли новый контент после этого.

Часто задаваемые вопросы

Только если вы добавите разметку. Пустой элемент молчит, поэтому задайте ему role=“status” и понятную aria-label.

Это медиазапрос CSS, который срабатывает, когда посетитель попросил свое устройство уменьшить анимацию. Его можно использовать, чтобы замедлить или остановить спиннер.

Подходят оба варианта. Замедление сохраняет ощущение активности, а остановка самый безопасный выбор, если вы дополнительно показываете текстовое сообщение, например «Загрузка».

Опишите действие простыми словами, например «Загрузка результатов» или «Сохранение изменений». Не используйте расплывчатые подписи вроде «спиннер».

Крупный размер и сильный контраст делают спиннер заметнее, но не заменяют текстовую подпись, которую считывают вспомогательные технологии.

Сопутствующие инструменты

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Генератор конфигурации webpack

Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Валидатор XSD

Проверьте XML-документ в соответствии с схемой XSD и выявите несоответствия между элементами и их типами, указав точные номера строк.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Конвертер размера файлов

Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.

Инструмент доступен на других языках

Руководства и сценарии использования