<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: contenteditable</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/contenteditable.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2006-06-20T23:42:18+00:00</updated><author><name>Simon Willison</name></author><entry><title>Two revolutionary features in Opera 9</title><link href="https://simonwillison.net/2006/Jun/20/opera9/#atom-tag" rel="alternate"/><published>2006-06-20T23:42:18+00:00</published><updated>2006-06-20T23:42:18+00:00</updated><id>https://simonwillison.net/2006/Jun/20/opera9/#atom-tag</id><summary type="html">
    &lt;p id="p-0"&gt;Wow, if I'm not careful this is going to turn in to &lt;a href="/2006/May/11/operamini/" title="Opera Mini 2.0"&gt;a promotional blog for Opera&lt;/a&gt;.&lt;/p&gt;

&lt;p id="p-1"&gt;So, I've been playing with &lt;a href="http://my.opera.com/welcome%20to%209/blog/show.dml/306342" title="Welcome to Opera 9"&gt;Opera 9&lt;/a&gt; which came out earlier today (in a dual release for Windows and Mac, which is refreshing). It's an impressive package - it's fast, it renders every page I've throw at it so far, it passes &lt;a href="http://www.webstandards.org/action/acid2"&gt;Acid 2&lt;/a&gt;, supports Canvas and &lt;a href="http://www.opera.com/features/svg/"&gt;SVG&lt;/a&gt; and has a neat &lt;a href="http://widgets.opera.com/"&gt;widgets&lt;/a&gt; implementation. Performance on &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt; is a bit sluggish but other than that it's been extremely snappy. The tab screenshot thumbnails are a nice touch.&lt;/p&gt;

&lt;p id="p-2"&gt;There are two features however that set it head and shoulders above its competitors in terms of raw utility:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;&lt;p id="p-3"&gt;&lt;strong&gt;You can browse cached documents offline!&lt;/strong&gt; I'm not sure when other browsers forgot how to do this but it's been years since I've been able to unplug from the network and still view pages that have been saved in my cache.&lt;/p&gt;
 
&lt;p id="p-4"&gt;In fact, this feature is almost too effective: I had to keep double-checking to make sure my WiFi was definitely turned off. A visual indicator that you are viewing an offline document would be a very useful addition.&lt;/p&gt;&lt;/li&gt;

 &lt;li&gt;&lt;p id="p-5"&gt;&lt;strong&gt;You can quit your browser and reopen it to the same state.&lt;/strong&gt; Other browsers have been slow to cotton on to the fact that my browser state is important data - I frequently leave interesting pages open for days at a time and a browser crash causes me real pain. Safari and Firefox both have extensions that enable this but it's great to see it built in to the core product.&lt;/p&gt;
 
 &lt;p id="p-6"&gt;Sadly, Opera doesn't persist partially completed form data (so you'll still lose that half-written blog entry if you weren't smart enough to write it in a text editor and paste it in at the last moment) but it's still a huge improvement over the rest.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p id="p-7"&gt;As far as I can tell those two features have been in Opera since before the current release, but I'd never noticed them before. Here's hoping other browser manufacturers follow suit.&lt;/p&gt;

&lt;p id="p-8"&gt;While the interface is leaps and bounds ahead of Opera 6/7, it still has a few crufty edges: the preferences are hard to navigate, the text in the tab screenshot window comes across as an afterthought, there's a randomly placed recycle bin in the upper right hand corner and it took me a while to find a skin I liked (tango cl). The default behaviour for command-clicking a link is to open a new tab and switch to it; my preference is for opening in the background but I can't work out how to change that option (though shift-command-click does what I want). Overall though it rates extremely well.&lt;/p&gt;

&lt;p id="p-9"&gt;As usual, it's worth looking over the detailed changelogs (&lt;a href="http://www.opera.com/docs/changelogs/windows/900/" title="Changelog for Opera 9.0 for Windows"&gt;windows&lt;/a&gt;, &lt;a href="http://www.opera.com/docs/changelogs/mac/900/" title="Changelog for Opera 9.0 for Macintosh"&gt;mac&lt;/a&gt;). There are some real gems for scripters; Here's the list in full:&lt;/p&gt;

&lt;blockquote cite="http://www.opera.com/docs/changelogs/mac/900/"&gt;
&lt;ul&gt;
  &lt;li&gt;Added support for XSLT 1.0 and the XSLTProcessor constructor.&lt;/li&gt;
  &lt;li&gt;Added support for XPath 1.0.&lt;/li&gt;
  &lt;li&gt;Added support for DOM level 2 Style Sheets and associated parts of DOM level 2 CSS.&lt;/li&gt;
  &lt;li&gt;Implemented designMode for rich text editing.&lt;/li&gt;
  &lt;li&gt;Added support for the &lt;code&gt;CONTENTEDITABLE&lt;/code&gt; attribute and contentEditable property.&lt;/li&gt;
  &lt;li&gt;Implemented support for canvas, as described in the &lt;a href="http://whatwg.org/specs/web-apps/current-work/#scs-dynamic"&gt;Web Applications 1.0 draft&lt;/a&gt;, as well as the &lt;a href="http://my.opera.com/WebApplications/blog/show.dml/200788"&gt;opera-2dgame context&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Added support for Audio, as described in the &lt;a href="http://whatwg.org/specs/web-apps/current-work/#scs-sound"&gt;Web Applications 1.0 draft&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Multiple improvements to XMLHttpRequest support.&lt;/li&gt;
  &lt;li&gt;Added support for onmousewheel events.&lt;/li&gt;
  &lt;li&gt;Added support for document.load and document.adoptNode.&lt;/li&gt;
  &lt;li&gt;Added window.getSelection and associated methods.&lt;/li&gt;
  &lt;li&gt;Improved handling of offsetTop, offsetLeft, and offsetParent.&lt;/li&gt;
  &lt;li&gt;Removed support for "javascript:" URLs in CSS.&lt;/li&gt;
  &lt;li&gt;Pages using certain JavaScript events will reload when visited in history. A &lt;a href="http://www.opera.com/support/search/supsearch.dml?index=827"&gt;knowledge base article&lt;/a&gt; is available.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p id="p-10"&gt;I'm going to use Opera 9 as my default browser for the next week or so to see how well it holds up. I'll report back on the experience later.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/opera"&gt;opera&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/opera9"&gt;opera9&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contenteditable"&gt;contenteditable&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="browsers"/><category term="opera"/><category term="opera9"/><category term="contenteditable"/></entry><entry><title>Safari 1.3 is out (via Software Update)</title><link href="https://simonwillison.net/2005/Apr/16/safari/#atom-tag" rel="alternate"/><published>2005-04-16T15:51:54+00:00</published><updated>2005-04-16T15:51:54+00:00</updated><id>https://simonwillison.net/2005/Apr/16/safari/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.mozillazine.org/hyatt/archives/2005_04.html#007962"&gt;Safari 1.3 is out (via Software Update)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
New features include contenteditable support, XSLT and a major performance improvements.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xslt"&gt;xslt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contenteditable"&gt;contenteditable&lt;/a&gt;&lt;/p&gt;



</summary><category term="safari"/><category term="xslt"/><category term="contenteditable"/></entry><entry><title>Safari to get contenteditable support</title><link href="https://simonwillison.net/2004/Jul/3/safari/#atom-tag" rel="alternate"/><published>2004-07-03T23:47:13+00:00</published><updated>2004-07-03T23:47:13+00:00</updated><id>https://simonwillison.net/2004/Jul/3/safari/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.mozillazine.org/hyatt/archives/2004_07.html#005905"&gt;Safari to get contenteditable support&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Adopts another defacto standard (the last was XMLHttpRequest).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/safari"&gt;safari&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contenteditable"&gt;contenteditable&lt;/a&gt;&lt;/p&gt;



</summary><category term="safari"/><category term="contenteditable"/></entry><entry><title>contentEditable in Mozilla</title><link href="https://simonwillison.net/2002/Oct/17/contentEditableInMozilla/#atom-tag" rel="alternate"/><published>2002-10-17T13:53:03+00:00</published><updated>2002-10-17T13:53:03+00:00</updated><id>https://simonwillison.net/2002/Oct/17/contentEditableInMozilla/#atom-tag</id><summary type="html">
    &lt;p&gt;ContentEditable for Mozilla is a hot topic at the moment. The main focus of the debate is &lt;a href="http://bugzilla.mozilla.org/show_bug.cgi?id=97284" title="Bug 97284: allow page to make arbitrary elements user-editable in browser"&gt;this bug&lt;/a&gt; on Bugzilla, which gets pretty heated. Blogzilla has a good &lt;a href="http://www.deftone.com/blogzilla/archives/standards_vs_but_ie_does_it.html" title="Standards vs &amp;quot;But IE Does It&amp;quot;"&gt;explanation&lt;/a&gt; of the principles behind the disagreement, while Scott Andrew makes &lt;a href="http://www.scottandrew.com/weblog/2002_10#a000443" title="contentEditable"&gt;an excellent case&lt;/a&gt; for copying IE's implementation:&lt;/p&gt;

&lt;blockquote cite="http://www.scottandrew.com/weblog/2002_10#a000443"&gt;&lt;p&gt;
To my knowledge, no W3 working group is discussing how to implement editable content directly in a Web page, so the question remains: do we follow IE's de facto standard, or wait for a standards body to hammer out one?
&lt;/p&gt;&lt;/blockquote&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contenteditable"&gt;contenteditable&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="mozilla"/><category term="contenteditable"/></entry><entry><title>Browser based rich text editing</title><link href="https://simonwillison.net/2002/Sep/4/browserBasedRichTextEditing/#atom-tag" rel="alternate"/><published>2002-09-04T16:56:05+00:00</published><updated>2002-09-04T16:56:05+00:00</updated><id>https://simonwillison.net/2002/Sep/4/browserBasedRichTextEditing/#atom-tag</id><summary type="html">
    &lt;p&gt;Scott &lt;a href="http://radio.weblogs.com/0103807/2002/09/04.html#a535"&gt;wants a rich text editor for Mozilla&lt;/a&gt;. What's more, he's willing to put his money where his mouth is and organise a fund drive to give developers a real incentive to do a good job.&lt;/p&gt;

&lt;p&gt;At &lt;a href="http://www.incutio.com/"&gt;Incutio&lt;/a&gt; we have a long history of messing around with rich text editors. I wrote an IE DHTML editor (similar to the one used by Radio Userland) least year which is still in use in our flagship CMS. We are currently looking at replacing it with a Flash editor, which will give us both cross platform compatibility and a better level of control over the HTML. Put simply, MSHTML generated code is absolutely revolting. It's made worse by the fact that people can cut and paste from Word, Excel and even other IE windows, preserving the formatting every time. Great for picky users but a nightmare for us web developers who are trying to keep the visual look of a site constant. And you can forget about standards compliance...&lt;/p&gt;

&lt;p&gt;With CSS finally at a stage where we can properly start to separate structure from presentation I think WYSIWYG editors are far less relevant today than they were a year ago. XHTML is about semantic markup, with presentational stuff being relegated to the site developer controlled stylesheet (where it rightly belongs). Any page editing tools need to concentrate on helping users mark up content in a meaningful way rather than letting them chose their favourite colours and fonts.&lt;/p&gt;

&lt;p&gt;That said, I strongly believe that the Mozilla project should invest considerable effort in browser based editing tools. Web based interfaces are here to stay, and a lot of people spend large chunks of their day creating content in a browser. Rather than relying on wizzy and unstable javascript tricks though I think we should go back to basics and reconsider the textarea. Imagine a textarea element that, when double clicked, spawned a brand new editing environment in a new window with all of the tools of a modern text editor. Or how about the option to spawn Composer (Mozilla's built in HTML editor) with the contents of a textarea, then click a button to have your newly created HTML dumped right back there? I haven't looked at Composer properly so I have no idea how standards compliant it is (or isn't) but it's already built in to the Mozilla suite - why not integrate it with the one part of the browser that needs it the most?&lt;/p&gt;

&lt;p&gt;At the end of the day, I suppose anything that enables more people to publish to the web has to be a good thing - especially if it enables more people to make the switch from IE :)&lt;/p&gt;

&lt;p&gt;Incidentally, &lt;a href="http://ww.xopus.org/"&gt;xopus.org&lt;/a&gt; have an interesting partial implementation of contentEditable for Mozilla. They have also just released the open source version of their impressive browser based XML editor. One to watch.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contenteditable"&gt;contenteditable&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="mozilla"/><category term="contenteditable"/></entry></feed>