Доступна ли реализация флажка ASP.NET MVC / удобна для чтения с экрана?
Если вы когда-либо смотрели, что ASP.NET MVC фактически отображает при использовании @ Html.CheckBoxFor, то вы видели, что каждый флажок, который вы запрашиваете для визуализации, на самом деле приводит к выводу не одного, а двух входных тегов. Одним из них является флажок "истинное" значение, а другим - "ложное". Последний вход имеет тип "скрытый".
Обычно это не вызывает проблем, если вы правильно используете ASP.NET MVC. Вы не заметите удвоение ввода, если не попытаетесь, например, сделать что-то напрямую с Request.Form(например, почему ASP.NET MVC Html.CheckBox выводит два INPUT с одинаковым именем?)
Мой вопрос, однако, как экранные читатели справляются с этим. Например, можно ли полагаться на то, что они правильно сообщат пользователю сайта только видимый флажок?
2 ответа
Учитывая пример, который вы приводите в своем комментарии, он возвращает этот код:
<div class="col pure-u-xl-1-3 pure-u-lg-1-3 pure-u-md-1 pure-u-sm-1 pure-u-xs-1">
<label>Home Club Newsletter</label>
<input checked="checked" … id="newsletter" name="JoinHomeClub" type="checkbox" value="true">
<input name="JoinHomeClub" type="hidden" value="false">
<span class="checkbox-label">Yes, please sign me Up!</span>
</div>
Сразу же возникает проблема, потому что <label>
не связан с элементом управления, а видимый текст рядом с флажком не связан с полем.
Когда я получаю доступ к полю в NVDA, все, что он говорит, "проверено флажком". Нет доступного имени вообще.
Но на ваш вопрос...
Ваш вопрос был связан с <input type="hidden">
, Как сказал @SLaks, программы чтения с экрана игнорируют <input type="hidden">
, Дело в том, что у них одинаковые name
ценность не проблема. Если бы они имели то же самое id
значение, то у вас будет проблема (как это будет проявляться в программе чтения с экрана, зависит от вещей и вещей).