2017-01-31 9 views
0

У меня есть простая страница входа в мое приложение с полями имени пользователя и пароля. Мое приложение разработано JAVA и использует интерфейс интерфейса Primefaces.Проверка подлинности в валидаторе W3C сбой из-за атрибута, требуемого арией

Я добавил в текст поля ввода праймстей (p: inputText) поле имени пользователя и пароль «Прайс-листы» (p: пароль) для поля пароля.

После того, как страница отобразилась в браузере, код, вероятно, выглядит ниже.

<div class="text"> 
    <label for="email">E-mail: </label> 
    <input type="text" id="email" name="email" size="20" aria-required="true" /> * 
</div> 
<div class="text"> 
    <label id="passwordCtrl" for="last">Password: </label> 
    <input type="password" id="passwordCtrl" name="password" size="20" aria-required="true" /> * 
</div> 

Когда я пытаюсь проверить HTML-код в https://validator.w3.org/, он показывает сообщение об ошибке проверки, как показано ниже.

W3C validator message screen

Чтобы получить код для проверки, щелкните правой кнопкой мыши на странице и выберите View Source, а затем скопировать весь код и вставьте код в W3C валидатор.

Среди двух элементов управления проблема заключается только в управлении input[type="password"]. Как справиться с этой ошибкой проверки кода HTML? Есть ли способ достичь этого?

Примечание: Я использую рамки Primefaces UI

+0

На веб-сайте w3c есть страница, в которой объясняется, как добавить этот атрибут в Javascript ... https://www.w3.org/TR/WCAG20-TECHS/ARIA2.html – Archer

+0

Пожалуйста, ознакомьтесь с последним обновлением в вопросе , –

ответ

1

сопровождающие проверки W3C HTML (валидаторы) здесь. Контроллер сообщает, что «Атрибут aria-required не разрешен на элементе input в этой точке», поскольку для requirements in the ARIA in HTML spec для использования атрибутов ARIA с <input type=password…> не допускается наличие role, и разрешено иметь только ARIA global attributes.

Атрибут aria-required не является одним из глобальных атрибутов ARIA. В HTML атрибут aria-required разрешен только тогда, когда элемент имеет значение role, такое как role=searchbox или role=textbox, или для элементов, которые допускают неявную роль.

Например:

Но поскольку <input type=password…> не имеет неявную роль и не может иметь каких-либо явных ролей, то в соответствии с ARIA in HTML spec, он никогда не позволял иметь атрибут aria-required.


Я извиняюсь за плохое качество «Attribute aria-required не допускаются на элемент input в этот момент» проверки сообщений, которые не очень полезно и не делает актуальной проблемой ясно.

Дизайн контролера затрудняет улучшение этого сообщения, чтобы сделать его более понятным.Код для проверки разметки ARIA является самым сложным кодом в контролере, и сложно заставить его работать таким образом, чтобы создавать более полезные сообщения об ошибках, особенно для случая элемента input, который представляет собой 20 различных элементов завернутый в один.