Компонент звездного рейтинга - Какая правильная доступность и семантика будут использоваться - PullRequest
4 голосов
/ 03 мая 2019

У меня есть компонент звездного рейтинга, который в настоящее время имеет следующую семантику.SVG - это просто звезды.

<div role='img' aria-label="6 out of 6 ratings">
  <svg role="presentation"></svg>
  <svg role="presentation"></svg>
  <svg role="presentation"></svg>
  <svg role="presentation"></svg>
  <svg role="presentation"></svg>
  <svg role="presentation"></svg>
</div>

Я использовал роль арии role='img', так как хочу, чтобы в идеале я воспринимал это изображение как одно изображение.Затем я использовал роль арии role='presentation' на SVG, так как я думаю, что только SVG не предоставляют никакой дополнительной информации, поэтому хочу удалить семантическое значение для SVG и его детей.Я прочитал о роли представления здесь.

Я прочитал статью о доступности SVG, и они идут с немного отличающимся подходом.Вот пример, который они приводят:

<body>
...
<svg xmlns=http://www.w3.org/2000/svg role="img" aria-labelledby="title  desc">
   <title id="title">Circle</title>
   <desc id="desc">Large red circle with a black border</desc>
   <circle role="presentation" cy="60" r="55" stroke="black" stroke-width="2" 
   fill="red" />
</svg>
…
</body>
  • Они используют role='img в svg.Я считаю, что это не относится к моей ситуации, и было бы лучше, чтобы я оставил role='presentation' в моем SVG?
  • Они используют title и desc.Я полагаю, что как одна звезда SVG не принесет никакой дополнительной выгоды пользователю?Кроме того, при наведении курсора на SVG будет отображаться название (и desc?), Которое мне не нужно.

Возвращаясь к моему примеру того, как оно у меня сейчас:

  1. Что я могу сделать, чтобы улучшить доступность / семантический дизайн, чтобы сделать его более удобным для пользователя?
  2. Правильно ли я использовал правильную роль арии для контейнера и SVG?
  3. Должен ли я бытьМожно ли просмотреть мое рейтинговое изображение (в целом) относительно считываемой метки арии?
  4. Какие еще атрибуты арии я должен использовать?

Lookingна примере semantic-ui у них нет ролей арии из того, что я вижу.

1 Ответ

1 голос
/ 07 мая 2019

Веб-документы MDN для img роли содержат ссылку на звездный рейтинг роли = пример "img"

Они используют aria-hidden вместо role="presentation"

Согласно спецификациям, роль img уже должна сделать ее дочернюю презентацию

Я бы добавил, что доступность подразумевает нечто большее, чем просто доступность для программ чтения с экрана. Например, «3 черные звезды, 2 белые звезды» в примере MDN - это то, что люди могут не понимать (например, люди, естественно читающие справа налево).

«Бабушка: Дорогая, лучше ли иметь 5 белых звезд или 5 черных звезд?»

Я бы сказал, что добавление «Примечание: 3/5» рядом с рейтингами может быть хорошей помощью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...