The WYSIWYG Technical Manual documents the detailed steps to incorporate a skyWriter into your Content Management System.
The skyWriter for Internet Explorer is built with the Microsoft Dynamic HTML Editing Component (an Active-X Control).
The skyWriter for Mozilla, future Netscape browsers, and other Gecko-based browsers, is a XUL application leveraging the Composer visual editing long familiar to Netscape browser users (since Navigator Gold in Netscape 3). There are several reasons why Mozilla (and future Netscape browsers as well as other "Gecko"-based browsers to come) will emerge as the preferred cross-platform solution. See the WYSIWYG Report for details.
To make a web page from HTML code three distinct steps are involved, each done by tools with many man years of development behind them. These steps are:
Anyone who builds a WYSIWYG editor has to do all these steps as well or better than the browser designer, because they all are necessary. The easiest way to do this is to leverage the enormous investment made in the browser itself, and this is what the IE and Mozilla widgets do.
The HTML code parser has to scan the characters in an HTML file and decide first what are the tags (in angle brackets) and what is the content. If the HTML programmer uses bad syntax (like improperly nested tags) it has to decide what to do. Early strict parsers (mostly Netscape) just rejected these pages, but Internet Explorers often made a "best guess" as to the programmers intentions. This then encouraged web page authors to write poor code, and today's modern browsers have to be programmed to handle these exceptions or all the old web pages and badly written new ones will break. It's estimated that half the programming in a browser is now these exceptions.
We should assume that our knowledgeable CMS authors will write good HTML, and we could enforce the rules, but the fact remains that a WYSIWYG widget designer has to write all these parsing rules for a tool independent of the browser.
The output from the parser is a highly tree-structured document with a root, branches, and nodes that contain the web page content. Each browser has its own DOM, and the W3C has a proposed standard DOM, not fully implemented in any browser except the W3C's own Amaya reference design, and the Opera browser, which is still incomplete.
Once an HTML page is transformed into the DOM, the question arises whether the DOM can export the original code. This is called the "round trip" problem. As a web page designer, you may be unhappy to find your neatly indented and carefully capitalized code coming back without the indents and with everything in lower case. Even worse, if the parser misinterpreted or ignored some tags, your code may come back with different tags.
The final step is converting the DOM structure into visible pixels on the computer screen, and activate the screen to sense the mouse position, mouse clicks, keyboard presses, etc. all context dependent to allow the user to interact with the document. Even if the browser manufacturers used identical DOM structures, IE might render font sizes or table positioning one way and Netscape and Mozilla another.
This part of the problem will not go away until WYSIWYG (what you get) becomes WYSIWEG (what everyone gets).
In any case, the problem for the WYSIWYG visual editor is to build that rendering engine and UI. If they build it in the very powerful Java Advanced Windowing Toolkit, they may get something that looks quite different from either IE or Mozilla.
This explains why Java based WYWSIWYG visual editors are likely always to have poor performance compared to those leveraging the parsers, DOMs, and rendering engines built into the latest browsers. Perhaps the strongest evidence for the challenge to Java-based browsers is Sun's announcing the end of life in April, 2003 for HotJava, the original Java browser from the creator of Java technology.
These three problems are not specific to visual editors in the browser. Desktop HTML editors like Front Page, Dreamweaver, and HomeSite have the same problems. HomeSite solves this by building Microsoft's IE browser into their code. Microsoft has long offered developers the browser as a kind of super Active-X control, with liberal royalty-free licensing. Needless to say, most of the desktop editors have had more financial resources behind them than the typical in-browser WYSIWYG editor project.
The very latest development is from the Mozilla Organization, whose 1.1 release exposes elements of their Composer WYSIWYG editor architecture in their XML User-interface Language (XUL).
How to build a XUL application is spelled out in the new O'Reilly publication Creating Applications with Mozilla, in the XUL Reference pages at mozilla.org, and can be gleaned from open-source code in various efforts to build Mozilla-based WYSIWYG editors, notably Eric Hodel's ComposIte and the skyWriters released by wysiwyg.skybuilders.com.
Links to Some WYSIWYG Visual Editors
| Product | Technology | Website |
|---|---|---|
| The List of TTW WYSIWYG Editors (Paul Browning) | All | The List |
| Bitflux (XML Editor) | Mozilla | Bitflux |
| ComposIte | Mozilla | composite.mozdev.org |
| Ektron eWebEditPro | IE | www.ektron.com |
| Ephox Edit-Live and Edit Live for Java | IE and Java | www.ephox.com |
| Hexidec Ekit | Java | www.hexidec.com |
| Jspell | Java | www.jspell.com |
| Real Objects GmbH | Java | www.realobjects.de |
| skyBuilders skyWriters | IE and Mozilla | wysiwyg.skybuilders.com |
| WebsiteASP OmniUpdate | IE | www.omniupdate.com |
| Xopus (XML Editor) | Mozilla | www.xopus.org |
Some Newsgroups that discuss WYSIWYG Visual Editors
|
alt.html
alt.html.editors.enhanced-html alt.html.editors.webedit alt.html.webedit |
| alt.www.webmaster |
|
comp.infosystems.www.authoring.html
comp.infosystems.www.authoring.site-design comp.infosystems.www.authoring.tools |
|
comp.lang.java
comp.lang.java.programmer |
| comp.lang.javascript |
|
comp.os.linux
comp.os.linux.misc |
| comp.publish.electronic.end-user |
| comp.sys.mac.apps |
|
microsoft.public.inetsdk.html-authoring
microsoft.public.inetsdk.programming.dhtml_editing |
| microsoft.public.mac.explorer |
| microsoft.public.windows.inetexplorer.ie5.programming.dhtml.scriptlets |
| misc.writing |
| netscape.public.mozilla.wishlist |
| php.general |
Related Links