@kazuhito
Kazuhito Kidachi's Personal Web Site Since 2000

aria-currentとかいう便利な属性

AccSellメールマガジン第106号における植木さんの連載「こんなブログ記事見つけました!」で、Using the aria-current attribute - Tinkが取り上げられていました。WAI-ARIA 1.1で追加された属性、aria-current(もんどさんによる素晴らしい和訳で読むならaria-current(ステート)参照)を紹介している記事で、自分もDiigo Bookmarks 01/16/2017にある通り、注目した記事ではあります。

ただ、件のBlog記事を読んで、うおおおaria-current属性ちょう便利!今スグ使おう!!ってならなかったのは、指定すべき値がちょっと悩ましいというか......step、date、timeの3種はそれほど悩まずに使えると思うんですけど、pageとlocationについては、どっちをどこでどう使い分けるかという点について、明確な答えなり方針を出せずにいたんですよね。

俗に「パンくず(Breadcrumb)」と呼ばれるナビゲーションのようなもの、があります。パンくずにおいて当該ページ、つまり現在位置を示す要素に対しては、ARIA Breadcrumb Design Pattern Exampleにある通り、aria-current="page"で決まりだと思うんですよ。なんですけど、件のBlog記事を書いたWatson氏の手によるaria-current design patternsを見ると、aria-current="location"のコードサンプルのところにパンくずのマークアップがあって、aria-current="page"ではなくaria-current="location"を使っているのですよね(ってモヤモヤしてても仕方ないから、さっきコメント残したけど)。

ご丁寧に、彼女はスクリーンリーダーがサンプルコードを読み上げるのをYouTubeにアップしてくれているのですが、それを聞く限りではpageでもlocationでもどちらでもいい感じ(謎)に聞こえるのがまた、余計に悩ましいというかややこしいというか(少なくとも英語環境では)。てなことをつらつら考えていくうち、pageとかlocationとか要らなくない?aria-current属性は確かに便利だし必要だけれど、取りうる値としてはtrueとfalseだけでよくない?よくなくない?という気持ちに。

これとは別に悩ましい点として、パンくずのようにピンポイント(謎)で現在の項目を表すのと別に、グローバルナビゲーションなどで当該ページの属するカテゴリーを表現・マークアップする際にどうすれば良いのか、ということ。当然、aria-current属性の使いたさはあるけれども、値にpageを使うのはどうも違和感があって、じゃあlocationを使う?それとも、汎用的なtrueにする? それとも無理やりcategoryって値を突っ込んでおいてtrue扱いさせちゃう? みたいな。あーこれ完全に飲み屋トークっていうかAccTalkネタですわ。オチはありません。

[ 2017-06-01 追記 ] Windows用スクリーンリーダーのNVDAが、2017.2 Releaseでaria-current属性に対応したらしいです(Announcing NVDA 2017.2 Release参照)。しかし、どの要素につけてもちゃんと相応に読み上げられるわけではないらしい、というのが同僚の調査の結果で判明しています。その一端は、Please support aria-current · Issue #6358 · nvaccess/nvdaとか1365904 - Spans are pruned from the accessibility tree, even if they have aria-current setにも見て取れます。

現在地:ホーム > 覚え書き > 月別アーカイブ > 2017年1月 > aria-currentとかいう便利な属性
Google カスタム検索を利用しています