Входные элементы только для чтения и не входные элементы - PullRequest
0 голосов
/ 04 ноября 2019

Я оцениваю некоторый код для клиента и наткнулся на места в его HTML, где они отображают input поля с атрибутом readonly и статическим value. Данные в этих полях никогда не будут редактируемыми на рассматриваемой странице, поэтому я считаю, что они не должны быть полями input, потому что это кажется семантически неправильным, но, что более важно, может вызвать проблемы у людей, которые используют экранчитатели. Я знаю, что с input, даже с одним только для чтения, вы получаете возможность для элемента получить фокус, но это удобство использования здесь не имеет значения.

Я нашел этот вопрос , который просит то же самое, но это было с 2013 года, только один человек ответил, и это не показалось авторитетным ответом.

Существуют ли определенные стандарты или лучшие практики для того, как представлять данные, которыевозможно, изначально исходил от пользовательского ввода, но теперь отображается только для чтения, что связано с доступностью?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Нет ничего плохого в использовании отключенных входов для ввода текста или текста. Это часть HTML5 спецификации , и большинство основных комбинаций браузер / программа чтения с экрана справятся с этим достаточно хорошо.

Есть несколько причин, по которым можно использовать ввод только для чтениявместо статического текста:

  • Ввод только для чтения может получать фокус ввода с клавиатуры, статический текст по умолчанию отсутствует.
  • Входы только для чтения включены в порядок табуляции формы,статический текст будет пропущен.
  • Входные данные только для чтения будут отправлять данные как часть формы, статический текст - нет.

Хотя это более старая страница, этоВ статье есть несколько тестов для чтения с экрана с использованием атрибута readonly, и результаты, как правило, были благоприятными с некоторыми небольшими оговорками. Я подозреваю, что с тех пор поддержка, возможно, улучшилась.

Кроме того, веб-сайт caniuse показывает довольно обширную поддержку браузера для этого элемента.

Я бы не колеблясь использовал этоатрибут, если он соответствует варианту использования.

0 голосов
/ 04 ноября 2019

Ответ здесь зависит от вашей формы.

При обнаружении ввода программа чтения с экрана перейдет в режим форм.

В режиме форм программа чтения с экрана предназначена для пропуска между полями. в форме.

Это означает, что, если между входами разбросан какой-либо простой текст, он будет пропущен.

Это, очевидно, проблема доступности.

Если ваша форма правильно структурирована, нет проблем с отображением информации на входе readonly.

Фактически для форм, которые пользователь заполнил ранее, может быть полезно оставить форму как есть. потому что знакомый макет будет указывать, что это информация, которую они вводили ранее, и дает контекст для вашей формы и информации в ней.

Если бы это был не ввод пользователя, я бы порекомендовал заменить его на форму, поскольку это добавляет ненужную сложность странице.

...