2017-01-31 6 views
0

ユーザー名とパスワードのフィールドを持つアプリケーションに単純なログインページがあります。 私のアプリケーションはJAVAによって開発され、Primeface UIフレームワークを使用します。W3Cバリデーターのコード検証が、aria-required属性のために失敗しました

usernameフィールドにPrimefacesのinputText(p:inputText)を、パスワードフィールドにPrimefaceのパスワード(p:password)を追加しました。

ページがブラウザでレンダリングされた後、コードはおそらく以下のようになります。

<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> 

私は以下に示すように、それは検証エラーメッセージを示す、https://validator.w3.org/にHTMLコードを検証してみてください。

W3C validator message screen

を検証するためのコードを取得するには、右ページをクリックし、[ソースの表示]を選択し、コード全体をコピーして、W3Cのバリデータのコードを貼り付けます。

2つのコントロールのうち、問題はinput[type="password"]コントロールでのみ発生します。このHTMLコード検証エラーを処理するにはどうすればよいですか?これを達成する方法はありますか?

注: 私はPrimefaces UIフレームワークここではW3C HTMLチェッカー(バリ)の

+0

JavaScriptを使用してその属性を追加する方法を説明するページがw3cウェブサイトにあります。https://www.w3.org/TR/WCAG20-TECHS/ARIA2.html – Archer

+0

質問の最新の更新をご覧ください。 –

答えて

1

メンテナを使用しています。 Checkerは、<input type=password…>でARIA属性を使用するためにrequirements in the ARIA in HTML specにはroleを使用できず、ARIA global attributesを持つことが許可されているため、「属性aria-requiredがこの時点で要素inputの要素に許可されていません」というメッセージが報告されています。

aria-required属性は、ARIAグローバル属性の1つではありません。 HTMLでは、aria-required属性は、要素が特定のrole値(role=searchboxまたはrole=textboxなど)を持つ場合、または暗黙的な役割が許される要素の場合にのみ許可されます。例えば

しかし<input type=password…>は、暗黙的な役割を持っていないし、その後ARIA in HTML specにつき、明示的な役割を持つことが許されていないので、aria-required属性を持つことが許されたことがないです。


私はチェッカーメッセージ-非常に有用ではなく、実際の問題を明確にしない「この時点で要素input上で許可されていない属性aria-required」の品質不良をお詫び申し上げます。

チェッカーのデザインは、メッセージをより明確にするためにそのメッセージを改善することを困難にします。ARIAマークアップをチェックするコードは、チェッカーで最も複雑なコードの一部です。特に有用なエラーメッセージが生成されるようにするのは難しいです。特に、input要素の場合は20種類あります1つに包まれる。

関連する問題