私はさまざまな記事にリンクするナビゲーションリストを作成しています。過去に私は、複数のli
要素を含む単一のul
要素を含むnav
要素としてナビゲーションリストを定義しました。これらの要素はすべて、それぞれ独自のa
要素で構成されています。WAI-ARIAリンクロールを使用して、任意の要素をハイパーリンクにすることはできますか?
私は思ったんだけど、a
要素は、WAI-ARIA リンクrole
属性で回避することができますか?
<nav role=listbox>
<ul>
<li role=link href=#foo>
Foo
</li>
</ul>
</nav>
WAI-ARIA勧告describes the link roleとして:
当然のことながら、
li
要素がhref
属性が許可されていませんので、以下のブラウザで理解しやすいものに変換されることはありませんアクティブにすると、ユーザーエージェントがそのリソースにナビゲートする原因となる内部または外部リソースへの対話型参照。
それはと続き:
これは(そのようhrefの値を持つHTMLアンカーなど)ホスト言語でのネイティブリンクの場合、リンクをアクティブにすると、そのリソースに移動するためのユーザーエージェントを引き起こし。これがシミュレートされたリンクの場合、Webアプリケーションの作成者はナビゲーションの管理を担当します。
もちろん、私は単純なJavaScriptクリックハンドラを追加することができますが、ブラウザがそのリンク先を確認するのを妨げます。たとえば、Chrome、Edge、Firefoxでは、画面の左下に灰色のボックスが表示され、リンクが有効になっていることをユーザーに知らせるためにリンクが有効になります。私はこの記事では上記に含まましたリンクの上にマウスを移動、ユーザーがこの表示が表示されます:
は、任意の追加要素を実装せずに、この機能が含まれるように、ブラウザを取得することが可能ですか?
"当然、li要素はhref属性を許可されていません"何かXHTML 2.0 ... – BoltClock
_ "追加機能を実装せずにこの機能をブラウザに組み込むことはできますか" " - そうではありません。あなたがどこかにリンクしたい場合は 'a'要素を使います。 – CBroe
"簡単なJavaScriptクリックハンドラを追加できました" - これはキーボードユーザーにとってはうまくいきません。右クリック - 新しいタブで開くタブは機能しません。なぜここで ''を使用しないのですか?要素を追加することをためらっているのはなぜですか? – BrendanMcK