2016-11-21 3 views
3

私はプロジェクトのWAI-Aria準拠基準を満たすために取り組んでいます。次のコードはカスタムドロップダウンボタンを生成します。私が受け取っているエラーは、「ボタンが空であるか、値のテキストがありません」ということです。私は、隠されたテキストを含むアリアラベルを使用して、タイトルを付けて、ボタンタグに値を追加しようとしました。いずれも効果がありません。私の質問は、どのようにこれを準拠ボタンにすることができますか?WAI-ARIA準拠テキストが含まれていないボタン

編集:コンプライアンスに関するマークを紛失した領域を見つけるために、アドオンWaveコンプライアンスチェッカーを使用しています。

<button class="child btn btn-lg" data-value="+" data-loopid="@i" style="color:#1C5D9C;background-color:transparent;padding:0 1px; @if(!item.HasAdditionalLocations){@Html.Raw("visibility:hidden")}"> 
             <span class="iconPlusRoundBlueWhite"></span></button> 
+0

'

+1

@chharvey私もタイトルを試してみました。明確化のために – Joshua

+0

ありがとうございます。あなたはあなたの質問にその情報を追加したいかもしれません。 – chharvey

答えて

1

実際にボタンにテキストが表示されないことが原因で問題が発生している可能性があります。私は、テキストの目に見えて隠された部分を使用することをお勧めしたい:

<button class="child btn btn-lg" data-value="+" data-loopid="@i" style="color:#1C5D9C;background-color:transparent;padding:0 1px; @if(!item.HasAdditionalLocations){@Html.Raw("visibility:hidden")}"> 
    <span class="iconPlusRoundBlueWhite"> 
    <span class="sr-only">text for the button</span> 
    </span> 
</button> 

.sr-only { 
    height: 1px; 
    width: 1px; 
    overflow: hidden; 
    clip: rect(1px,1px,1px,1px); 
    position: absolute; 
    white-space: nowrap 
} 

これは目に見えてテキストを隠すと、スクリーンリーダー(white-space: nowrap)で読んだとき、それは一緒に押しつぶされないようになります。これは、ボタンの完全なセマンティクスを機能させることができるので、私の好みの解決策でもあります。これは、余分なマークアップを追加するので

<button class="child btn btn-lg" data-value="+" data-loopid="@i" style="color:#1C5D9C;background-color:transparent;padding:0 1px; @if(!item.HasAdditionalLocations){@Html.Raw("visibility:hidden")}" aria-describedby="button-message"> 
             <span class="iconPlusRoundBlueWhite"></span></button> 

    <div id="button-message">I am the text for a button</div> 

私は、この説明を格納するために、あなたのマークアップに余分なものが必要でしょうが

アリアは、あなたがのために行くているものであれば、あなたはaria-describedbyを試みることができますsr-onlyクラスの方にもっと傾けられ、目に見えないテキストが表示されます。

+0

Karl、これで問題が解決しました。問題は、このメソッドを呼び出す多くのボタン構造の1つにspanステートメントがないことでした。 +1、正解に投票できるまで – Joshua

関連する問題