編集ホスト

編集ホスト

仕様書

意味

[6] 編集ホストは、編集可能文脈です。

作成

[5]

[11] 著者は、editing host やこれを使って作成された要素において、 white-space: pre-wrap を設定するべき (encouraged) です。 >>10

[12] これは、 white-space: normal の場合に、利用者が複数個連続して空白を入力すると U+0020U+00A0 が自動的に併用されて、 U+00A0 のために行折り返しが不自然な表示となるためです。 >>10

挙動

[2] Enter を押すと、段落が改められます。

[3] div 要素内であれば、または特に要素内になければ、 新たな div 要素が挿入されます。

[4] 末尾で新しい段落が挿入されると、新しい段落の中身は br 要素1つだけとなります。

問題

[23] 要素の境界を利用者がうまく扱う方法がありません。境界で入力したときにどちらに入るかは Webブラウザー次第で、利用者が指定する手段がありません。

[26] コピペDnD でも境界のどちら側になるかはWebブラウザー次第です。 例えば a 要素内に img 要素だけがあるとき、 両者をまとめて他の位置に移動させる良い方法がありません。

[24] コピペで中途半端に CSS の指定が style 属性に保存されることがあります。 どういう条件で何が保存されるのかは摩訶不思議です。

[14] コピペ要素CSS を保存せずに貼り付けさせることができません。 (onpaste 時に貼り付けデータを得て自力で操作すればできないことはありませんが...)

[25] 画像のサイズ変更の UIIEFirefox が実装していますが、 ChromeSafari が実装していません。

選択子

[13] :read-write一致することがあります。

歴史

前史

[8] Web の流行が始まった90年代中頃、 Netscape Navigator GoldMicrosoft FrontPageホームページビルダーといった WYSIWYG 型の HTMLエディターが登場しました。

しかしこの世代の製品は Webブラウザーとは別の独立したソフトウェアとして HTML の編集機能を提供していました。 Netscape Navigator Gold のように Webブラウザーと統合された製品も、 (内部的にどうなっていたのかは知りませんが、) 表示と編集は別々の機能で、表示中の文書を直接編集したり、編集機能を表示中の文書内に埋め込んだりすることはまだできませんでした。

[9] Microsoft Office は、独自の処理モデルを持った Web とは異なるソフトウェア群でしたが、 この時期に Web から色々な機能を取り入れました。 HTML の読み書きに加えて、 Web 風の URL を指定したハイパーリンクのような機能も追加されていました。 ActiveX Document によって Internet Explorer内に Microsoft Office の文書を表示することもできました。こうした一連の機能群で Microsoft が提示した世界観は、ある意味で後の時代の contenteditable のある Web を先取りしたものでした。 (現在の Google Docs はそれが完全に Web 上に移ったものと理解できましょう。)

[7] contenteditabledesignMode も参照。

[1] Web Applications 1.0 r5728 clarify the focusablity of editing hosts ( ( 版)) http://html5.org/tools/web-apps-tracker?from=5727&to=5728

[15] GitHubエディターは、開発者にとっては使いやすいのでしょうが、 利用者にとってはすべての人が満足するものとはなっていません。 Webブラウザーの標準の挙動と異なることが、利用者体験を明確に悪化させています。

BackSpace で削除される範囲が謎です。ただ前の1文字を削除するのではなく、 複数の行?や段落?がまとめて削除されることがあったりします。

スクロールの挙動が Webブラウザーの動作と違っていて使いにくい。

[16] Make content editable elements clearable (shs96c著, ) https://github.com/w3c/webdriver/commit/e5a5e929cb99d98fcebe65da9103248aa560bcff

[17] Refine the inputmode attribute, and expose it on contenteditable (dtapuska著, ) https://github.com/whatwg/html/commit/d430f275f4e253956a5965c8b90885d3ac4e90c1

[18] Move inputmode to not be dependent on forms · Issue #1897 · whatwg/html () https://github.com/whatwg/html/issues/1897

[19] Remove inputmode · Issue #3077 · whatwg/html () https://github.com/whatwg/html/issues/3077

[20] Refine the inputmode attribute, exposing it on contenteditable. by dtapuska · Pull Request #3260 · whatwg/html () https://github.com/whatwg/html/pull/3260

[21] Add the autocapitalize attribute (rlanday著, ) https://github.com/whatwg/html/commit/f1f0af83e320f14a59dc4e552ee82aab7908f00c

[22] Add the enterkeyhint="" attribute (dtapuska著, ) https://github.com/whatwg/html/commit/a5422d984d9b7b8a4e0ad7a0ad237b07f190cc93