googleは未だ、js無効化に全く対応できていない。
Microsoftを凌駕し、ITの王様となって久しいgoogle.comは、Javascript無効ブラウザに全く対応していないwebサイトの一つだ。
例えば、検索窓に「ヤマト 集荷」と入力し、一番上に表示されたリンクをクリックすると、画面が真っ白になる。
これを「google社の問題」とするかどうかは、閲覧者によって評価が分かれるかもしれないが、少なくとも貧乳教徒の私は、「ヤマト運輸の問題でもあり、google社の問題でもある」と思っている。
そうではないという意見をお持ちの方には、(理論の基になるものが社会学か生物学か、はたまた憲法学か新興宗教かは分からないが、)その知見をご披露頂きたい。
js無効ブラウザに対する完璧な対応とは何か
js無効ブラウザで自サイトを訪れた閲覧者に、自サイトを最も不自由なく使ってもらうにはどうすれば良いだろうか。何が最も親切な『神対応』だろうか。
どんな対策を施せば、叶恭子をして「ファビュラス」と言わしめる事ができるだろうか。
Firefoxに直リンクを貼った。
まさか、「(お使いのブラウザで)javascriptを有効にしてください」ではないだろう。こんなに傲慢で、不合理で、無配慮で、不見識でみっともない対応は他にあるまい。こんなに馬鹿ばかしい文言を堂々と掲載できるのは、かの有名なy●h●● japanぐらいだ。
(ニュースのコメント欄が"ロ●アのスパイから好評を得たいT●Y●T●従業員"で溢れかえっていて気持ち悪いので、私はy●h●● japanを閲覧するのを1年半前にやめた。)
対して、「趣味でwebサイトをやっている者だ」な私が素人なりに、捻くれた頭を更に捻って導き出した最初の企みが、以下のコードになる。
<!doctype html><htmllang=ja><metacharset="UTF-8"><style id=i9999>#i9998{-webkit-text-size-adjust:100%;box-sizing:border-box;position:fixed;width:100%;height:100%;z-index:100;margin:0;padding:180px00;background:#fff}#i9998>li{width:300px;margin-left:calc(50%-150px)}#i9998>li>a{/*display:inline;width:auto;*/background:#ffc}</style><script>window.addEventListener('DOMContentLoaded',(event)=>{document.getElementById('i9999').innerHTML='#i9998{display:none !important}'});</script><style>/*自由なスタイル*/</style><metaname=viewportcontent='width=device-width,initial-scale=1,maximum-scale=1'><body><!--自由なHTML--><script>//自由なスクリプト</script><ulid=i9998><li>
Javascriptを有効化しても問題のない、<ahref='//mozilla.org/ja/firefox/new'>安全なブラウザ</a>で example.com をご利用ください。
</ul></body></html>
やっていること
1. 無効対策専用style(id=i9999)でul(id=i9998)を縦横100%、最前面(z-index:100)のfixedとする。
2. window.onloadに先んじて発火するDOMContentLoadedにより、無効対策専用styleの内容をul#i9998{display:none}に書き換える。
3. ul#i9998の中身はjsが発火しない場合には「最前面に全表示」、発火したら「真っ先に非表示」になるので、そこにFirefoxのDLを促す文言を書き、リンクを貼る。
なぜこうしたか。
js有効無効の判定をDOMContentLoaded、それ以外の通常のDHTMLプログラムをwindow.onloadと棲み分ける事で、互いに干渉しない。仮にwindow.onload以後のjsコードで何らかのエラーが発生したとしても、js無効ブラウザ向けのul(z-index:100)は既に非表示にされている。
上記functionが実行できないような環境(js無効設定だけではなく、古いブラウザも当てはまるかもしれない)では自サイトを満足に使ってもらえないので、js有効の場合10に対する7の機能性を実現しようと悪戦苦闘するよりも、「使えるブラウザなんて1つじゃないんだから、さっさと2個目をDLして存分に使い倒してくださいよ。」と唐突に表明するのが最良であると判断した。
今の時代、googleやamazonでさえ、「jsなしでも何とかなる」に固執する必然性は皆無だ。そんなものはユニバーサルデザインの必要条件ではない。それを言い出したら、3年前のガラホでも2000円の中華スマートウォッチでもYoutubeが見られなければおかしい。
そんな悠長なタスク(あるいは強迫観念)に時間を割く暇があるなら、モバイルファーストを4分の1歩でも前進させてみろという話になるのではないか。