@kazuhito
Kazuhito Kidachi's Personal Web Site Since 2000

テーブルレイアウトの自動判別

東京webデザイナー日記のcremaさんが、日経平均銘柄225社サイトを、<table>タグチェックプログラムで再調査というエントリで、<table>タグの数や<table>タグがネストしている深さを調べるプログラムと、それを用いて調査した結果を公開されていました。僕自身は、仮にtable要素がWebページのソース中に1つ以上存在したとして、それがレイアウト目的か否かを機械的かつ正確に判別する術は存在しないと思っていますが、これまで自分が目にした経験上に限っては、確かに<table>タグがネストしていたら、十中八九テーブルレイアウトのような気がします。
じゃぁネストしていない場合はどうなんだろう?って考えたときに、簡単に思いついたところでは、th要素を含まないtable要素は割とレイアウト目的っぽいのではないか?と思いました。あとは、あくまでも人手まかせでなく機械的に検証を行うという方針で考えますと、もしかしたらsummary属性の値を調べるのも多少は有効かもしれません。たとえばNIKKEI NETトップページのHTMLソースにはレイアウト目的のテーブルですというsummary属性値が存在しています。これと同様の実装を行っているサイトが他にどれだけあるかわかりませんが、「レイアウト」とか「layout」みたいな言葉をsummary属性値に探してみるのも一興かと。まぁ、めったにヒットしないだろうとは思いますけどね(レイアウト目的のtable要素でsummary属性を提供することはアクセシビリティ的にどうよ、という話がありますし)。
そんなことを考えていて、たとえばそれがレイアウト目的のtable要素であることを表現するためのmicroformatsが存在(class="layout"とか)したとすると、それはそれで面白いかなぁ?などと、一瞬妄想しました。必要に応じて、セルの内容をリニアライズできるようにするためのフックを提供しよう、みたいな(一応書いておくと、テーブルレイアウトの利用を積極的に推奨する意図はありませんので念の為)……ちょうどソシオメディアが提供しているSimpleWebの動作に近いような。ってなことに気づいたところで、セマンティックアナライザーの説明を読んではみたものの、(テーブルレイアウトか否かの)詳しい判別ロジックまではさすがに書かれていませんでした。

現在地:ホーム > 覚え書き > 月別アーカイブ > 2006年7月 > テーブルレイアウトの自動判別
Google カスタム検索を利用しています