石川准、河村宏、立岩真也、青木千帆子の4氏による座談会記録

2014年に公開された石川准、河村宏、立岩真也、そして青木千帆子の4氏による座談会記録が公開されています。
視覚障害学生石川准と東大図書館員河村宏:その1970年代から21世紀へ

  • 視覚障害者のICT方面の支援技術(スクリーンリーダーとか点字ディスプレイとか)の歴史
  • 1970年代から80年代の障害学生に対する大学の支援状況
  • 研究者から見た図書館や点字図書館のサービス
  • 視覚障害者にとってのテキストデータ
  • マラケシュ条約(は直接言及されていませんが、石川氏が米国のRFBから録音図書を取り寄せていた話は、条約が実現を目指す未来を示している)

と書かれてアンテナが反応する方は必読かと。

tableoverflowプロパティ使いたさでtabledisplay:blockしてはいけない

 タイトルが全てですが、RWD対応でtable要素にoverflowプロパティ使いたさで table要素に直接display:blockをしてしまうこと、結構されがち(な気がします)。これをしてしまうと、スクリーンリーダーがtable要素をテーブルを認識できないというアクセシビリティ上の問題が発生します。
 ブラウザが支援技術にテーブルとしてアクセシビリティオブジェクトを渡さないことが原因で、詳しくは以下の @kazuhito さんとみるくさんのブログに詳しいです。

例えば、スクリーンリーダーには、表に特化した機能を備えていますが、display:blockされることで利用できなくなる可能性が高いです。
overflowプロパティはサイズの確定されたブロック要素に効くようです。display:blockを使用せずにtableoverflowプロパティ使う場合は

  1. table要素にきっちり高さと幅を指定する(tableもブロック要素なのでこれで効くみたい。なお、サイズ指定はmax-widthなどでは不可らしい)
  2. table要素の上にdiv要素などの別のブロック要素でラップしてそのdiv要素などにoverflowプロパティを指定する(div要素は幅は横にめい一杯などサイズを指定しなくてもサイズをデフォルトで備えている、のか?)
  3. (2018/12/30 @mondo_ さんのツィートを受けての追記)table要素にtableの属性値をrole属性を追加する(Chromeはそれでdisplay:blocktableでもテーブルとしてアクセシビリティオブジェクトを生成するようです)。   

のいずれかでしょうか。サイズを固定する1はRWD対応の中ではなかなかしんどいので、現実的には2なのでしょうか。3も選択肢になりますが、role属性に対応していないUAも視覚障害者の利用する環境にはあるようですので、そのUAの対応次第かなと。
 なお、いわゆる「レスポンシブテーブル」というものも、少なくとも現時点では、tabledisplay:blockにする必要があるようですので、同じ理由でアクセシビリティ的にはやらない方がよいようです。モバイル端末などの小さいスペースの画面では、「レスポンシブテーブル」は、わかりやすい表のUIの1つであるような気がしますので、それが利用できないのは、惜しいですね。