HTMLだけで実現する何かはプログレッシブ・エンハンスメントではないのかな?

スミマセン。このエントリーでroll属性とありますが、正確にはrole属性です。

ブログなどでプログレッシブ・エンハンスメントに関するエントリーを読みますと、そのほとんどがCSS3に関するテーマのお話ですよね。なんでHTMLだけのお話でプログレッシブ・エンハンスメントが語られることがほとんどない(まだ僕は聞いたことがない)のかなーと不思議に思ってたりします。

そもそもプログレッシブ・エンハンスメントってなんですか?

僕の中では、「互換性などもふまえてHTMLをしっかりと作りながら、より進んだ技術をサポートしているユーザーエージェント(以下、UA)にはよりよいユーザー体験を提供しましょうね」というのがプログレッシブ・エンハンスメントだと理解していますので、この前提にたってこのエントリーを書いています

ですのでそもそもその前提が違ってますけど、という場合はご指摘ください。よろしくお願いいたします!

例えばroll属性を指定するだけでもプログレッシブ・エンハンスメントのような気がする

さて、ではどんな場合がHTMLだけでプログレッシブ・エンハンスメントを実現出来ると思ってるの?ということですが、例えばWAI-ARIAで策定が進んでいるroll属性を考えてみましょう。

4.4. ロール(role)の定義には、HTML文書に簡単に指定することができる値が用意されています。ざっくりと言ってしまえばページの中で、ここにはナビゲーションがあるよーとか、ここにサイト内検索があるよーということをHTMLに記述することが出来るわけですね。

で、なんでこれを指定するのがプログレッシブ・エンハンスメントなのかと言いますと、スクリーンリーダーの中ではJAWSのバージョン10からと、いつからかバージョンは覚えていませんがNVDAの最新版で、roll属性を認識して、見出しジャンプのようにページ内の主要な場所へとスキップできるという機能をサポートしています(これをランドマークジャンプと言ったりしますね)。

現状においては、roll属性を指定することで(X)HTMLはinvalidになりますが、メジャーなUAに何か迷惑をかけるということはありません。JAWSやNVDAを使用してブラウジングしている人にとっては、ランドマークジャンプを利用してサイト内検索やナビゲーションをすぐに発見することが可能になるわけですね。これってプログレッシブ・エンハンスメントじゃないのかなーと思うんですがどうでしょうか?

余談

なんかプログレッシブ・エンハンスメントっていう言葉が分かりづらいなーと思うんですよね。UAによって最適な実装をしましょう、ということであれば、「User Agent Optimization」でUAOとか良いかなーとか思いました。

いろいろ大きなことを言ってしまってスミマセン!

comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

TrackBack URL :