Мы работаем над тем, чтобы сделать наш сайт электронной коммерции доступным для программ чтения с экрана, и у нас возник конфликт по поводу цен. В наших категориях и на страницах продуктов указывается несколько долларовых сумм, когда на продукт действует скидка:
Есть ли какой-нибудь стандартный способ передать всю эту информацию пользователям с ослабленным зрением? Мы не хотим ничего пропускать, но также не хотим, чтобы список продуктов был слишком длинным для просмотра.
В настоящее время VoiceOver воспринимает нашу цену как «цена, 9,99 долларов США [TAB]», продажа, 7,99 долларов США, «[TAB]» экономия, 2 доллара США ».
Мы рассматриваем возможность переименовать все это в один оператор, чтобы пользователю не приходилось перебирать каждую цену. «было 9,99 доллара, сейчас продается по 7,99 доллара, сэкономьте 2 доллара»
Сработает ли вышеперечисленное, или есть более стандартизированный способ сообщить об этом?
@ChristopheStrobbe, тьфу, тоже. Это промежуток с текстовым оформлением: сквозная строка;






Насколько мне известно, не существует настоящего стандарта, который бы точно описывал, как следует представлять информацию о ценах. Вам решать, как подобрать лучшую формулировку для вашего конкретного случая. Пока все четко указано в тексте, все должно быть в порядке.
Чего вы должны абсолютно избегать, так это предоставления (неявно) информации только посредством ее визуального форматирования. Например, вычеркивание цен без явного указания где-то, что это исходная цена и что в настоящее время действует скидка, создает проблему доступности для пользователей программ чтения с экрана и тех, кто может плохо видеть зачеркнутый.
Итак, в основном вы на правильном пути, указывая все в текстовом виде.
Теперь, лично по опыту как пользователь программы чтения с экрана, начиная с вашего примера, я бы сказал:
Спасибо за это. Это то, что я собираюсь представить и посмотреть, что думают UX и бизнес.
@QuentinC дает несколько хороших советов по порядку информации (самое важное в первую очередь - цена, которую вы собираетесь заплатить), но одна вещь, которая беспокоит меня в OP, - это то, почему пользователь переходит на tab по всем ценам. Цены интерактивны?
Или, возможно, это просто вопрос терминологии. Я думаю, что под tab вы действительно имеете в виду смахивание вправо, чтобы переместить фокус VoiceOver.
Одна вещь, которую следует учитывать, если вы решите сделать это одним большим предложением, - это немного усложняет синтаксический анализ всей этой информации. Пользователь VoiceOver может изменить свой ротор на «слова», а затем смахивать вверх / вниз, чтобы перемещаться по слову за раз, чтобы услышать информацию, но, возможно, это не лучший способ заставить их сделать это. Но тот факт, что вы предоставляете всю эту информацию, действительно важная часть, так что вам спасибо.
Кроме того, VoiceOver останавливается на границах элемента, когда вы проводите вправо, поэтому, если у вас есть что-то вроде:
<div>
<span>hello</span>
<s>there</s>
<span>world</span>
</div>
Вы услышите «привет», swipe right, там, «мир swipe right».
Если вы просто хотите услышать «hello there world» одним движением пальца, тогда вам понадобится «текстовая» роль недокументированный (и, следовательно, официально не поддерживаемая).
<div role = "text">
<span>hello</span>
<s>there</s>
<span>world</span>
</div>
В качестве примечания, хотя <s> и <del> являются семантическими элементами, их значение не передается программам чтения с экрана. Один из способов справиться с этим задокументирован в «Краткое примечание о том, как оставить свой след (более доступно)».
Спасибо за это, закадровый голос стал подарком для нашего проекта доступности. Я хочу объединить всю эту информацию в один длинный оператор, чтобы ни один из элементов не был интерактивным. Это страница со списком продуктов, поэтому каждая плитка в сетке представляет собой ссылку, которая ведет на одну и ту же страницу сведений о продукте, независимо от того, нажимаете ли вы название продукта, изображение или цену. Есть кнопка добавления в корзину, которую мы хотим сохранить отдельно, но в остальном я думаю, что имеет смысл кратко читать всю сводку продукта без необходимости для пользователя вкладывать / пролистывать.
Would the above work, or is there a more standardized way to communicate this?
Не следует отвлекать внимание, вводя в программу чтения с экрана слишком много информации.
Я не говорю, что это стандартное решение, но решение, которое вы должны рассмотреть, - просто игнорировать старую цену с помощью aria-hidden:
$7.99 <div aria-hidden = "true">($9.99)</div>
Таким образом, пользователь программы для чтения с экрана получит только новую цену и действительно получит доступ к ней. Поскольку текст зачеркнут, я не думаю, что WCAG потребует здесь речевую альтернативу.
одна из целей доступности - по возможности обеспечить равные условия для всех. если зрячие пользователи знают первоначальную цену, то об этом также следует сообщить программам чтения с экрана. это проблема доступности, если информация не предоставляется всем пользователям.
@slugolicious Я полностью с вами согласен, но в данном случае мы говорим о тексте, который был замаскирован с помощью "вычеркивания" (что уже является проблемой для людей с плохим зрением или расстройством чтения)
если он запутан и труден для чтения, его, вероятно, следует полностью удалить. это должно быть простое черно-белое решение без серых областей. либо текст есть, независимо от того, как он представлен (зачеркнутый или что-то еще), и доступен для всех пользователей, либо текста нет. золотая середина - проблема доступности. Использование aria-hidden или форматирования CSS, которое затрудняет чтение пользователями немного, создает серьезную проблему.
Используете ли вы зачеркивание с помощью
<s>$9.99</s>или<del>$9.99</del>?