Элемент label
все еще используется, и я надеюсь, что он останется таким (люди с ограниченными возможностями особенно благодарны за них).
Четкая семантическая связь между элементом ввода и label
позволяет программе чтения с экрана четко диктовать пользователю, какую информацию следует вводить в какие входы.
Что касается display: none
, я не уверен, что это все еще будет читаться. Если нет, вы можете попробовать text-indent: -9999px
.
Fangs - хороший эмулятор программы чтения с экрана, чтобы проверить это. Требуется FireFox.
Хотя по теме доступности вы можете превратить этот ввод в HTML5 search
input .
Браузеры, поддерживающие его, будут семантически точно знать, что это такое, поскольку не могут вывести его из ваших class
/ id
/ label
/ и т. Д.
Обновление
Я пытаюсь просто использовать его как дескриптор для программ чтения с экрана. Я не хочу, чтобы мои постоянные посетители видели его, так как любой текст в этой строке поиска ухудшает стиль страницы.
Вы можете использовать атрибут HTML5 placeholder
, он будет отображать некоторый текст внутри элемента, который описывает, что он делает (поиск в этом случае). Это не поддерживается широко, но есть JavaScript, который эмулирует его (я написал jQuery плагин , который делает это).
И последнее: я хотел бы добавить label { cursor: pointer }
в свой CSS, чтобы помочь пользователям понять, что он активен (очень полезен для флажков и переключателей).