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 Mail.app on Tiger. HTML
editing can also be used in Web pages using WinIE-compatible APIs like contentEditable
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.
View bugs in the HTML editing component on OpenDarwin.
Below are some of the tasks that need work in HTML editing.
Implement tab stop support
Right now WebCore's HTML parser just inserts a sequence of spaces when a tab character is encountered in the source.
This means that tab stops in Mail.app no longer work in Tiger. We are working to leave tabs in the DOM and to make sure that
the rendering code does the right thing when white-space is set to pre.
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.