HTML Editing


Welcome to the HTML editing home page. HTML editing is a new feature that shipped with Safari 1.3 on Panther and Safari 2.0 on Tiger. Most importantly the WebKit editing engine is used to compose mail messages in on Tiger. HTML editing can also be used in Web pages using WinIE-compatible APIs like contentEditable and designMode.

Architecturally the editor operates as a series of commands that are executed on a document's object model tree. Each command can be undone and redone just by performing the appropriate set of DOM operations. The implementation of these commands and other editing infrastructure can be found in the WebCore framework in the khtml/editing subdirectory.

Editing operations are also part of the WebKit API, and so there is some overlap with that project. Up until now our focus has mostly been on editing for applications that embed WebKit, but we plan to focus in the future on improving the in-page editing support via contentEditable.

Get Involved!

View bugs in the HTML editing component on OpenDarwin.

Below are some of the tasks that need work in HTML editing.
Improve contentEditable divs
Right now there are a number of issues with editable divs in a Web page. The selection highlighting is not confined to the div, and extending the selection across editable and non-editable content should not be possible. In addition WebKit always clears the selection on a mouse down, and other browsers actually only do this if you mouse down on text.
Add better support for lists and tables
Lists and tables are two editing features that could use a richer user interface so that these sorts of features could be made available to mail and to other WebKit applications.
Support more of WinIE's APIs
We want to support more of WinIE's editing APIs, including more commands and text ranges. We welcome any WinIE-compatible patches that improve editing support to match WinIE.