一人のWebアプリケーション開発者として、Webの世界に足りないと感じるものをまとめてみた。
Webの仕様の問題と業界の問題を区別せずに列挙した。
- 広告モデルからの脱却
- ネイティブUIを呼び出せるようにして
- お行儀の悪いアナリティクス用のJSを排除して
- もうサードパーティークッキーは禁止すれば?
- プライバシーに対する意思表示をセマンティックに
- ペアレンタルコントロールにDNSを使うのはおかしくない?
- プロキシが流行ってほしい
- strict HTMLヘッダーの提案
- テキストエディタ
広告モデルからの脱却
今の所、コンテンツ提供者の収入源は広告だけだ。だから、僕は良心的理由でAdBlockなどを入れていない。しかし、はっきり言って広告はウザい。広告は画面を大きく占有する。広告は過激な色使いでチカチカしてくる。目立ちたいからだ。こっちは興味ないのに。
もっと簡単にコンテンツに課金する手段が必要だ。
コンテンツ課金の辛い点は、お金を払うことではない。サイト毎に自分の個人情報を入力することの不安と手間だ。
よって、ブラウザにその機能をもたせたい。自分の決済情報を入力しておけば、ワンタップでコンテンツを購入できる仕組みがあればいいと思う。当然こちらの個人情報は渡らないようにする。
https://jp.techcrunch.com/2020/03/26/2020-03-25-mozilla-scroll-partnership/
Scrollというサービスがある。もしかしたらこれが来るかもしれない。
ネイティブUI
Webアプリの最大の弱点はUIコンポーネントだ。
僕はAndroidアプリやiPhoneアプリも開発している。
AndroidやiOSの標準コンポーネントを使えばサクサク動く。
それに対してWebの画面は常にもっさりしている。
タップやスクロールの判定がおかしくてイライラする。
所詮、HTMLとCSSは論文交換プラットフォームだ。
HTMLの表現力はネイティブの操作性には勝てない。
参考
少なくともGoogleやFacebookやTwitterですら、ネイティブアプリと同レベルの触り心地のWebアプリを作れていないのだから、これは絶対ムリなんだと思う。
よって、スマホのブラウザはJSからネイティブUIコンポーネントを起動できるようにするべきだ。
アナリティクス
広告業者やアクセス解析業者はサイトオーナーにトラッキングタグ的なものを提供している。
このスクリプトのお行儀が悪すぎる。
Chrome DevToolsのネットワークタブを見るとわかる。ページロード時にスクリプトがいっぱい無駄な通信を発生させている。
僕はマジでキレてる。
PageSpeed Insightsで95点のサイトにトラッキングタグを入れるだけで60点台になったりする。
Googleが提供するタグですらPageSpeed Insightsを10点近く下げる。
もう、トラッキングタグをJSで実装するのを禁止してほしい。
サーバーサイドでやればいいじゃん。
WebサーバーがAnalyticsサーバーにAPI経由でアクセスイベントを送信すればいい。
ちなみに、ブラウザにネイティブの機能としてそれを入れようと話し合われている。
早く何とかしてほしい。
https://github.com/WICG/conversion-measurement-api
サードパーティクッキー
ITPが始まった時、絶対これは無理筋だろうと思った。案の定カヲスなことになってきた。
度々抜け道が見つかるからだ。ITPの挙動自体が状態を持つ。それを悪用すればITPを使ってユーザーをトラッキングできてしまう。その度にAppleが複雑なルールを導入して対応する。イタチごっこになっている。
もう、まともな良心を持ったサイトオーナーはサイトをまたいだトラッキングは諦めていると思う。わざわざ頑張ってAppleの規制を迂回するのも面倒だ。そもそも、サイトをまたいでユーザーの行動を突き合わせてターゲティングするのは人権侵害感が出てきている。善人でありたい。
”インテリジェントな”トラッキング防止なんてできなかったんだ。
この際、サードパーティークッキーは全部禁止したらいい。
プライバシーに対する意思表示
最近、西洋の会社のサイトに行くといちいちCookieを使っていいか聞かれてウザい。
どの程度Cookieを使っていいかなんて考えたらわかるだろうと思ってる。
つまらない保険を掛けるために僕のアテンションを奪わないでほしい。
そこで、そのJSONフォーマットを定めたい。
サイトはJSONに個人情報の使い方を明示してそのURLをmetaタグに書く。
ユーザーは各自自分のブラウザに自分のプライバシーに対する考え方を表明しておく。
訪れたサイトがその意思表明に合致していたらそのまま閲覧が出来る。
合致していなかったら警告が出たりする。
それで済む話だ。
ペアレンタルコントロール
ペアレンタルコントロールにDNSのレイヤーを使うのはおかしくないか?
僕はあまりペアレンタルコントロールという物自体が好ましいと思えない。しかし残念ながら、これがないと色んな話が政治的にまとまりづらい。
例えば、ペアレンタルコントロールができないと学校でノートPCを配布できないだろう。
さて、最近はペアレンタルコントロールにDNSのレイヤーを使うことが多いようだ。
確かに、アダルトサイトのDNSを引けないようにしておけばサイトの閲覧を阻止できる。
しかし、これは情報汚染だと思う。
アダルトサイトのIPアドレスが何番であるかというのは、あくまで事実かどうかの問題であって、善とか悪とかを持ち込んでいい場所ではない。それはもう一個上のレイヤーでやることだ。この辺を区別しないのはポル・ポトと同レベルだと思う。
とりあえずDNSをそういうことに使うのをやめてほしい。
じゃあどうすればいいのか、プロキシだと思う。
プロキシ
僕はフォワードプロキシに絶大なる未来を感じている。フォワードプロキシこそがWebの未来だと思う。
フォワードプロキシを使うことが当たり前になるといいと思う。
画像圧縮などが出来るようになって便利なはずだ。
これは、一時期問題になった回線事業者による勝手な画像圧縮や政府による検閲とは違う。
あくまで、個人が自分の意思で業者を選んで使うものだ。
しかし、HTTPSに対するまともなプロキシプロトコルが存在しない。
strict HTML
JSにuse strictという機能がある。
これのHTML版を作って欲しい。
ブラウザは、少々おかしなHTMLでも正しく解釈してくれる。
閉じタグを書き忘れたりしても、なんとなくリカバリしてくれる。だがその為に余計な処理能力を使っているはずだ(僕はブラウザの実装には詳しくないので想像だ)。
ところで、僕は大体ReactのSSRでHTMLを作って出力している。ReactのSSRは綺麗なHTMLを出力する。閉じタグつけ忘れなんて無いはずだ。綺麗なHTMLを出力している開発者に何のご褒美もないのはおかしい。
そこで、HTTPヘッダーにuse-strict-htmlと書いたら、ブラウザは綺麗なHTMLが来ることを期待するという仕様を作れないか。
そうすれば、ブラウザはより高速にHTMLをパース出来る。
HTMLのバイナリフォーマットを作ってもいいかもしれない。
テキストエディタ
GUIでテキストを編集できる系のWebアプリで使いやすいものを見たことがない。
はてなブログもGoogle DocsもTwitterの入力画面も。
ちなみに、UbuntuのChromeでTwitterに日本語入力しようとするとバグる。
唯一心を許しているのはStackEditという2ペインのマークダウンエディタだ。
textareaタグを頑張ってカスタムしてテキストエディタを作るのはもう限界だ。
なんとかしてほしい。