Кратко
СкопированоРоль изменяющихся областей из WAI-ARIA. Нужна для создания изменяющейся или «живой» области. marquee используют для блоков с не очень важной информацией, которая постоянно обновляется.
Пример
Скопировано
<h3>Курсы на сегодня</h3><ul role="marquee"> <li>9 999 $ за юань</li> <li>1 000 000 000 $ за куриное пёрышко</li></ul>
<h3>Курсы на сегодня</h3>
<ul role="marquee">
<li>9 999 $ за юань</li>
<li>1 000 000 000 $ за куриное пёрышко</li>
</ul>
Как пишется
СкопированоДобавьте к любому тегу role.
Где пригодится marquee:
- курсы валют;
- тикеры — бегущие строки с биржевой информацией об акциях и индексах;
- рекламные баннеры;
- карусели.
Роль marquee похожа на log, но у них есть важное отличие. В области с marquee не важно, в какой последовательности обновляется содержимое.
marquee по умолчанию задано свойство aria. Это значит, что, хоть это и изменяющаяся область, скринридеры не расскажут об изменениях без фокуса на ней или на элементе внутри.
Чтобы изменить стандартное поведение marquee, замените значение aria с off на polite. В этом случае вспомогательные технологии расскажут об изменениях, где бы пользователь ни находился на странице, но не сразу. Например, сначала они дадут пользователю завершить все действия или расскажут о более важных событиях.
В большинстве случаев лучше не изменять поведение marquee. Например, в карусели слайды быстро сменяют друг друга и часто нет возможности остановить автоматическую прокрутку. Пользователям скринридеров будет мучительно это слушать 😫
Тикеры, наоборот, обновляются раз в день, поэтому это не будет настолько навязчиво, но при этом хорошо учитывать контекст. Новостной сайт с информацией обо всём не особо подходит для такой области с marquee, а вот сайт только про биржевые новости подходит уже больше.
<ul role="marquee" aria-live="polite" class="ticker"> <li class="ticker__item"> Рога и копыта <span class="ticker__item-price"> 134.56 USD </span> <span class="ticker__item-precent ticker__item-precent--up"> + 12% </span> <span class="ticker__item-precent-text visually-hidden"> рост </span> </li> <!-- Другие пункты списка --></ul>
<ul role="marquee" aria-live="polite" class="ticker">
<li class="ticker__item">
Рога и копыта
<span class="ticker__item-price">
134.56 USD
</span>
<span class="ticker__item-precent ticker__item-precent--up">
+ 12%
</span>
<span class="ticker__item-precent-text visually-hidden">
рост
</span>
</li>
<!-- Другие пункты списка -->
</ul>
После клика на кнопку «Обновить результат» скринридер сделает примерно такое объявление: «Рога и копыта 22 целых 16 десятых доллара США 84 процент спад, Радуга и пони 137 целых 86 десятых доллара США 11 процент спад, Мир обоев 11 целых 66 десятых доллара США 99 процент спад».
Элементы с role можно подписывать. Для видимой подписи подойдёт атрибут aria, для невидимой — aria. Только учитывайте, что хоть на практике и можно добавлять подписи ко всем элементам, спецификация не рекомендует подписывать <div>, <span> и другие неинтерактивные элементы.
Как понять
СкопированоИзменяющаяся область — это область страницы, в которой содержимое обновляется из-за внешних событий или действий пользователей. Благодаря изменяющимся областям вспомогательные технологии узнают об обновлениях на странице и автоматически рассказывают о них пользователям.
marquee продолжает логически то, что визуально делал устаревший тег <marquee>.