Кратко
СкопированоARIA-роль структуры документа, которая определяет выделенный или подсвеченный важный фрагмент текста.
Эквивалент в HTML — <mark>
.
Пример
Скопировано<p> Одной из нерешённых проблем строения галактик является <span role="mark" class="mark">тёмная материя</span>, проявляющая себя только в гравитационном взаимодействии. Она может составлять до 90% от общей массы галактики, а может и <span role="mark" class="mark">полностью отсутствовать</span>, как в некоторых карликовых галактиках.</p>
<p> Одной из нерешённых проблем строения галактик является <span role="mark" class="mark">тёмная материя</span>, проявляющая себя только в гравитационном взаимодействии. Она может составлять до 90% от общей массы галактики, а может и <span role="mark" class="mark">полностью отсутствовать</span>, как в некоторых карликовых галактиках. </p>
mark
не изменяет внешний вид элемента, так что нужно не забывать самим добавлять стили с помощью CSS.
.mark { background-color: #FFFFFF;}
.mark { background-color: #FFFFFF; }
Как пишется
СкопированоЗадайте любому статичному HTML-тегу или ARIA-роли role
, лучше всего семантически нейтральным <span>
или <div>
.
Пока скринридеры и другие вспомогательные технологии никак не обозначают выделения в тексте, в том числе с помощью интонации. Если это крайне важное выделение в тексте, используйте хак с псевдоклассами :
, :
и свойством content
:
span[role="mark"]::before { content: " [начало выделения] ";}span[role="mark"]::after { content: " [конец выделения] ";}
span[role="mark"]::before { content: " [начало выделения] "; } span[role="mark"]::after { content: " [конец выделения] "; }
Благодаря этому трюку пользователи узнают о выделениях в тексте, если в скринридере выбрана специальная настройка, благодаря которой технология зачитывает содержимое из content
.
Особенности использования
СкопированоЕсли поддерживаете режим высокой контрастности в Windows, не забудьте задать элементу mark
системный цвет с помощью значения forced
у директивы @media
. Благодаря этому цвет выделения заменится на системный и будет таким же контрастным, как остальные цвета.
@media (forced-colors: active) { span[role="mark"] { color: HighlightText; background-color: Highlight; }}
@media (forced-colors: active) { span[role="mark"] { color: HighlightText; background-color: Highlight; } }
Например, в теме «Ночное небо» элементы с ролью mark
будут выделятся фиолетовым цветом.
Как понять
СкопированоARIA-роли помогают только вспомогательным технологиям. mark
не изменяет внешний вид элемента и не добавляет никакую функциональность. В большинстве случаев лучше использовать тег <mark>
.