Должна ли в миниатюре поста WordPress присутствовать role="presentation"?
В настоящее время я пишу тему для нового сайта и хочу быть настолько дружелюбной, насколько это возможно, для вспомогательных технологий. Поэтому мне было интересно role="presentation"
в отображении вызова сообщения миниатюра.
HTML-код, сгенерированный PHP, выглядит следующим образом:
<figure class="featured-image">
<a href="{permalink}">
<img src="{featured image}" alt="{description}">
</a>
</figure>
Должен ли я включить role="presentation"
и, если это так, он должен идти в <figure>
элемент?
2 ответа
Если мы посмотрим на спецификацию w3 для ролей:
[role = "presentation"] отменяет неявную семантику ролей "заголовок", но не влияет на содержимое.
<h1 role="presentation"> Sample Content </h1>
Не существует неявной роли для span, поэтому только содержимое
<span> Sample Content </span>
Эта декларация роли избыточна.
<span role="presentation"> Sample Content </span>
Во всех случаях содержимое элемента предоставляется API доступа без какой-либо подразумеваемой семантики роли.
Sample Content
Сказать, что role="presentation"
в заголовок, я бы сказал, что либо <figure>
или <figcaption>
мог бы использовать роль здесь.
Тем не мение:
Если элемент с ролью представления является фокусируемым, пользовательские агенты ДОЛЖНЫ игнорировать нормальный эффект роли и предоставлять элемент с неявной собственной семантикой, чтобы гарантировать, что элемент является и понятным, и работоспособным. Авторы НЕ ДОЛЖНЫ предоставлять значимый альтернативный текст (например, использовать alt="" в HTML4), когда роль представления применяется к изображению.
Поскольку у нас уже есть alt-тег на изображении, я бы сказал, что использовать role="presentation"
а также оставил бы это для <figure>
, То есть, если вы даже хотите использовать его, потому что он кажется немного чрезмерным, снова цитируя W3 role="presenation"
:
Элемент, чья неявная семантика собственной роли не будет отображаться в API доступности.
Поскольку изображение отображается, и рисунок может использовать figcaption для дальнейшего объяснения его содержания, я бы сказал, что вам не нужно использовать role="presenation"
Вот.
Источник: W3C по ролям
Из предоставленного вами фрагмента кода альтернативный текст на изображении действует как текст ссылки, поскольку изображение является единственным содержанием ссылки. Так что это должно быть не описание изображения, а краткое описание цели ссылки. Прочитайте совет в спецификации HTML5 по этому вопросу.
<a href="{permalink}">
<img src="{featured image}" alt="{description}">
</a>
Если img
имеет не пустой alt
атрибут, который вы не должны ставить role=presentation
на нем, как это будет маскировать alt
текст атрибута. Если img
декоративное использование пустое alt
(alt=""
). Если у вас есть alt=""
тебе не нужно role=presentation