Closed Bug 97284 Opened 23 years ago Closed 20 years ago

allow page to make arbitrary elements user-editable in browser (contentEditable attribute)

Categories

(Core :: DOM: Editor, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 237964
mozilla1.3beta

People

(Reporter: glazou, Assigned: cmanske)

References

Details

(Keywords: css-moz, ecommerce, topembed-, Whiteboard: [Hixie-P5] [Hixie-CSSUI2] EMBEDDING)

Attachments

(11 files, 1 obsolete file)

I think we could add in the future a wonderful feature to the product : allow
any element in a browsed document to become editable. For instance, allow user
to directly modify in the browser the textual contents of a paragraph, or even
add elements and style them. Used in conjunction with DOM Load & Save, that
could be a killing app, letting us put two feet instead of one finger nail into
web publishing and/or collaborative edition.

I found that Microsoft started doing something like this during the CSS WG
meeting in Cleveland in 1999 when the first mention of the |isContentEditable|
proprietary extension to js appeared on their developer's web site. See below
for (a) technical data about the feature (b) a demo you should **really** try
with IE5.5 or higher.

We have a good browser, a powerful DOM, a clever editor based on the browser and
the DOM. It should be possible, at quite low cost, to add such a feature to
our product (me is perhaps dreaming at loud but, hey, that's a part of what I
am paid for, right ?-)

(a)
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/element3/contenteditable.asp

(b) http://msdn.microsoft.com/workshop/samples/browser/webediting/onepageeditor.htm
We already have this, it is called Bug 96604 =)
This should be done in a way that embedders can use it.

The real issue here is user experience. How do you indicate to the user that 
certain parts of a document are editable? How do you manage focus and keyboard 
navigability of editable elements?

I think, if we are to do this, it needs to be keyed off of CSS (-moz-editable or 
something).
This is what hixie has proposed in his CSS UI draft.  A property called
user-can-edit, I think.  (Goes along with user-can-focus, etc.)
Simon: in my opinion, the only feedback the browser should give is changing the 
mouse cursor.  The rest of the UI should be the responsibility of the server. The 
'contentEditable' elements should be out of the tab list and without focus 
indication (a bit like word processors: there is no focus and you cannot tab from 
a paragraph to the next)

For instance in a groupware application, the host would serve documents depending 
on the user access level that could be read-only, partially modifiable or fully 
editable.  The author will have to decide what visual feedback better represents 
the user access level, and it is nice to imagine that the whole mechanism (making 
things modifiable and providing feedback) can be implemented by a simple switch 
of stylesheet depending on the user.
Target Milestone: --- → Future
spam composer change
Component: Editor: Core → Editor: Composer
I think what this RFE is talking about is basically what IE does with <DIV
CONTENTEDITABLE>, but to implement it on a broader scale. This would indeed be a
definate IE killer. Implementing a CMS would be several orders of magnitude
easier with this!

If this is so, why is this in de Editor: Composer component?
Because the Editor component has been divided in two after the bug was filed,
that's all.
Component: Editor: Composer → Editor: Core
Keywords: css-moz
Whiteboard: [Hixie-P5]
Original question send to Sujay:

Is there, or going to be a way to access the composer components via JavaScript
from html documents ?
Like the execCommand("command") and .contentEditable='true' methods used by
Internet Explorer 5.5 ?
These commands are the remains of what used to be Frontpage Express which have
become accessable via 
Jscript, VBscript, Visual Basic and C++.
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/editing/mshtmleditor.asp

added comments:
Currently we're using the IE components as a clientside browserbased content
Editor. Developers set the editability 'freedom' via contentEditable. Editing is
done via Wysiwyg interface run via JScript execCommand('commandname'). 
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/commandids.asp
Edited webpages are submitted to a database which does the actual content
management. Content management is done via database.
*** Bug 122158 has been marked as a duplicate of this bug. ***
If this functionality is ever implemented, I would suggest trying to match 
Micro$oft's syntax whenever possible. Not because Micro$oft's syntax is 
especially great, but simply because hundreds of web applications are 
currently being written with it.
I have, unfortunately, to agree with last comment...
The syntax doesn't have to be the same. 
Currently working systems that rely on this feature will use other IE centric
features as document.all, filters, etc... so it's not likely that just by adding
some of the syntax to deal with the editor it will automagically work in every
CMS around.

What's most likely is that if the people is interested in support Mozilla then
they will add a second page and will redirect the user according to the browser,
and to design that second page they will use some sample that in the future will
be developed to test the implementation by Mozilla developers.

So there's no real reason to try and force the development of this feature to be
guided by the current syntax of IE. It can use whatever the Mozilla's developers
like. Just do it wisely and everybody will be happy.
Is this actively being worked on?  

As for IE syntax, etc.  It would help if it was maybe similar, but I don't think
it's necessary to be exact.  It may be good to even implement just the methods
used in the example for this bug.  My reasoning is this:

If a developer of an existing IE application sees that the example above works,
they may consider "supporting" Moz.  If they do support it, they will maybe read
a little more to get the rest of the functionality working on IE and NS.  

Unfortunately it's too easy to slap a "IE Only" label on and app.  So this
halfway compromise may get Moz's foot in the door.

BTW the editing stuff in IE doesn't even work on the Mac side, which is typical.
 At least we know if it's done in Mozilla it will work everywhere.
Yes, I am very interested in support the MS interface. We have to see how it fits 
in with our current embedding re-architecture work.
Assignee: brade → cmanske
Whiteboard: [Hixie-P5] → [Hixie-P5] EMBEDDING
The most complete implementation of this feature in IE can be seen at
http://www.aspalliance.com/Yusuf/Article10a.asp.  Something that looks very
similar to this is what is used in Hotmail.  If this could be implemented I am
sure that is most of the features that are necessary.
To call this "the most complete" is an insult to everyone out there who have 
made superior editors compared to this one.

Basically Mozilla has all the features needed to support this the only thing 
to do is to bring back the possibility to edit the document using the 
keyboard. This was available in early previews of Gecko. I have no idea why 
this was removed.

The range methods of DOM Level2 Ranges would allow the developer to insert 
images and change formats and all that stuff.
What I meant rather, was this is as complete as I've seen an implementation of
this particular technology that is available in IE.  I am not talking about
having an editor as complete as Composer embedded in the page, but more a basic
editor so the user can have a WYSIWYG editor within the page, but those changes
they made could still be submitted as a form element.  

After a review of the embedding work being done by mjudge, we are confident that
we will be able to support this, but probably not for 1.0.
Status: NEW → ASSIGNED
Target Milestone: Future → mozilla1.1
Whoo Hoo! A target is set after just a little talking to the developers.  This
is why Open Source developer is great.
In the nightly builds there is a menu item called "Editable mode" - si it
possible to add a javascript method on frames/iframes that toggles/switches this
mode. 

IMHO it's not a big deal to add this feature and it give us a lot. Using DOM/js
a much better (say HTML4.x compilant) editor component that the IE Frontpage toy
could be easily done. Please!

Jaro
Jaro v. Flocken--I think it's a great idea too.  We would love it if you or
someone else would submit a patch to address this rfe.
Keywords: helpwanted
I'm a very poor C++ programmer, more into the HTML /java and javascript stuff.
Howerver I could assist a coder during the implementaion (building a sample
Editor app etc.)

Jaro
What do you mean actually? A javascript hook to open the current page in
Composer, but within an iframe in a certain page (with or without the menubar)? 

This could be a good idea, but as is illustrated in the example there should be
a way for the HTML on that page to be "captured", that is, allow the
iFrame.body.innerHTML (and innerText) to be assigned to a JS variable in the
opener page.  This way the edited document could be sent back to the server as
raw HTML to be stored in a database, file, etc.

Also, just editing the whole page would be no good.  It would be better to
specify what would be edited, meaning
document.openInComposer.src="http://file.html/" 



In XUL you can add a simple <editor> Tag to get a WYSIWYG Editr area. 
At the moment it stops at the sandbox - if one tries to pull such a XUL document
from another location or using http: instead of chrome: a js security exception
will be fired.

A simple solution is indeed switching a completed document object into the
editor mode because we con use frames or - much better: iframe. The source
attribut of the iframe tag gets another document, this can be retrieved with
*.body.innerHTML or whatever (I'm sure there is a way to get the complete html
code.)

Please correct me if I completly wrong :-)

Jaro
What this bug refers to is not using <editor> or <HTMLArea> or anything. It's
about allowing arbitrary content in a web page to be editable. Imagine:

<html>
<body>
<p>Hello there. Type something here:</p>
<div editable="true">
Type here...
</div>
</body>
</html>
I thought that the Css3 proposed properties user-input and/or user-modify are 
supposed to do these. (Maybe user-select and user-focus as well in some way?)

These seems to be implemented using -moz-user-input and -moz-user-modify but 
these only work for input[type=text] and textarea.
Where do you see a menu item for "Editable mode"?  I just checked both the
MacOSX and Windows builds for today, and cannot find it. 

For what it is worth, I would love to see this feature and would immediately use
it, but the real issue for me is to be able to submit edited HTML content in a
form. So if it worked completely differently that would be OK too - for
instance, click a link and a page opens in Composer, click the Composer "save"
button and the HTML gets written to a form value, click the "Submit" button to
send it to wherever. Whether the page is edited within an iframe or in a
separate composer window is immaterial (for me at least). 
This is my exact need also.  I think the menu item he was talking about is Edit
Page.  I too have an urgent need as we are releasing a new feature as a major
part of out application and right now it's an IE only feature.
A <div> would be also great, ther is no need for proprietray tag's here, I just
tried to explain what I mean. I definately don't mean "auto open" a page in
Composer, it's more an embedded widget or area (call it what you like to) that
enables editing the innerHTML (or source in case of IFrame) in a WYSIWYG style,
excatly what <editor> is doing in the composer XUL File.

Many users want to edit parts of pages in content managment environments or
bulletin boards in the same way like a textprocessor (say Word or Staroffice here).

Another benefit is storing the edited content using any POST method, I doubt
thta this is possible/wished in Composer.

Well, that's what the original reaquest is for, exactly what you described.  I
thought you were originally suggesting a temporary work around until the full
fix is implemented.  As of right now, I think the leap from adding the <editor>
tag in XUL to implementing all of that in a <div>  is more diffucult then it
seems, because of code issues, not architecture.


 
I've been reading things about just using composer(-like inline elements),
complete with buttons and all. I thing it would be really important to be able
to control the mark-up with javascript. Sure, it would be easy if we (the
webdesigners) don't have to add buttons and javascript anymore, but it would
certainly limit the fexibility.
One thing I don't see you do without javascript being able to control the text
is add an image (one that's on the server or that can be uploaded by the user
or...).
This is the code currently in use by our company to implement this
functionality in IE.
removing myself from the cc list
jpd@TeachX.rutgers.edu : the "Editor mode" menu item is not in the browser but
   in viewer ; on windows, try mozilla\dist\win32_d.obj\bin\viewer

But that's not, as Simon pointed it out, the main purpose of the current bug.
Interesting idea, though. Btw, that menu item does not "toggle" editor mode, it
turns editor mode on, that's all. There is no way in viewer to turn it off.
Whiteboard: [Hixie-P5] EMBEDDING → [Hixie-P5] [Hixie-CSSUI2] EMBEDDING
Not allowing arbitrary elements to become editable is totally sucking the
monster bug wang. This bug being fixed would be of great use to not only myself,
but developers around the world. I will feed you beer by the bucket if some kind
heart will consider implementing|correcting this.
See also:
bug  96392 [RFE] Exposing HTML Editor commands to Browser Dom
bug 130796 HTML editor for <textarea> (HTMLArea)

I think both should be duped to this bug or wontfixed in favor of this bug.
Summary: [RFE] allow arbitrary elements to become editable by user in browser → [RFE] allow page to make arbitrary elements user-editable in browser
This is *not* a dup of bug 130796. They are rather different issues. I think bug
96392 should be dupped against bug 130796.
Simon, can you explain why you think they aren't dups of this bug and why you
think they're dups of each other?
Bug 130796 is about <htmlarea>, which is an HTML-capable <textarea> (though
closer to an editable <iframe> in implementation). HTML editing is limited to a
specific frame in the page.

This bug, and bug 96392, are about making arbitrary parts of the content of a
document editable via script, or CSS attributes. The implementation would be
different.
I'm the lead programmer on a popular OS CMS called WebGUI (plainblack.com). I
can't even fathom the amount of effort you guys have already put into Mozilla,
but I can tell you that in the CMS world, there is no higher priority than
trying to find a cross-platform inline editor. I can tell you that you do not
have to strive for compliance with IE or Opera or any other browser provided
that the functionality works on all versions of Mozilla. 

I can also tell you that IE will immediately be replaced by Mozilla as the
browser of choice by all of the WebGUI users (including some Fortune 500
companies) if this functionality were implemented. There is no hotter topic than
CMS as far as browsers are concerned in any company we've dealt with. And every
one of them wants to be able to publish content in their browsers from Windows,
Mac, Linux, and Solaris desktops scattered throughout the company.

There are a couple of commercial companies out there trying to make this work
(as java plugins), but we've purchased both of them and they both fail in many
aspects:

http://www.ektron.com/ewebeditpro.cfm
http://www.realobjects.de/

No matter which of the bugs (listed above or this one) you follow as an
implementation method, you will knock IE on it's can, as long as the resultant
HTML snippet can be passed back through a form.

I cannot wait to see this type of functionality implemented.
JT Smith, would an editable iframe be good enough, or do you really need
aribitrary elements in a page to be editable? Those are pretty different things,
from our perspective anyway.

I'm thinking that if the Java solutions are an option then an editable iframe
would be good too.
An editable IFRAME may do the trick, but I think there's really more to it than
that. We need methods through javascript to be determine what is highlighted,
perform some manipulation on that (like add style information), and then replace
the highlighted text with our new text.

There is a great open source DHTML editor here: http://richtext.cs.ramesys.com/
that you could take a look at. However, they're using some other IE only
functionality like modal windows.

We have another editor that we got from some DHTML site. It works very well too
and doesn't appear to use as much IE specific code. You can see it in action if
you go here: http://www.plainblack.com/dev_board?func=postNewMessage&wid=764 and
you can download the source from here: http://www.plainblack.com/extras/ieEdit.html

However, the thing that I think would be absolutely ideal would be to see
Composer loaded as a form element (instead of a textarea). That way users would
have all the power of Composer at their fingertips, and CMS developers could
integrate the output of composer into their form post without any trouble.
There are a couple other advantages to using Composer as a form element that I
forgot to mention.

1) If all that power were implemented, there'd be no reason to reinvent the
wheel. That way developers could spend their time working on something that
hadn't already been done.

2) It would give you an edge over Internet Explorer (until they copied it by
creating a form element that used Front Page).

3) It would be fast as hell because there's nothing else to download (unlike
java and dhtml based solutions).
Composer as a form element could be a option. Composer today works by making a
document editable, but all the editing UI is wrapping that editable document. 
Another option, one that was explored in the now defunct 5.0 codebase was to
have floating editing palette available that we implemented. Like you said, this
has download speed advantages among others.

However, what some people want is the IE style ability to create your own
editing UI with HTML that listens for selection as you described. The core
functionality could be the same, but we'd have to allow custom or canned UI
selection somehow. 

This is one of the big things both internal and external customers have asked
for post 1.0, so now is the time to weigh in on exactly what you need, and want
(noting that they can be different things).
I work mostly on the server side components of WebGUI. I've asked our resident
DOM/JavaScript guru to put together a list of what he'd need to make things work
properly if we built our own editor. I'll post that list as soon as he gets it
to me (a day or two). 

I have to say though, that even with the functionality added to create our own
editor, I think I'd rather use composer as a form element, because it would be a
monsterous effort to try and recreate the power of composer in our own editor.
Then again, if we could just extend/alter one of the open source editors that I
mentioned previously, perhaps it wouldn't be so big a deal.
If you view the attachment to this bug
(http://bugzilla.mozilla.org/attachment.cgi?id=73094&action=view, IE 5.5+), you
will see how we implemented the editor.  One feature that was hard to do for us
was to allow certain text to be inserted at caret via a double-click with the
.value (or innerText) of some other element in the page.  This is an important
feature for us because we would like to use Moz as an HTML editor, mainly for
creating form letter templates that then get values swapped in for keywords. 
This would eliminate the need for an external word processor (Word,etc.) and
keep out application entirely browser-based AND cross platform (all this IE
stuff only works IE for Windows).

So we are less interested in customization of UI and more with solid Javascript
hooks into the embedded Composer element, especially the ability to figure out
where the caret position is and insert something (text, HTML) there.
As mentioned before, there are two different features being discussed here.

1. The editable IFRAME or <HTMLAREA>. This would be a nice feature if it has a 
toolbar. It would make a great rich text input field for forums etc. IE 
(windows only) has this feature (DHTML Editing Component) since version 5.0 (or 
as plugin to 4.0) and it is used in various input forms. See for instance 
http://www.ecop.nl for an editor demo using that feature (IE 5.0+ on windows 
only). The site is in dutch, click in "demostratie" for a demo, click on "log 
in" to activate the editor and on the wrench to start editing.

2. The ability to make abritrary elements editable. IE (windows only) has this 
feature (contentEditable="true") since version 5.5. This feature really moves 
browser technology out of the input form era and paves the way for real 
applications in the browser. See for instance an editor comparable to ecop 
using contentEditable="true" at http://lime.platvorm.com/lime/users/editor/ (IE 
5.5+ on windows only). Click on one of the images to edit that page.

As i said, contentEditable paves the way for real applications. An other 
example which shows some of the power of contentEditable is Xopus. Xopus is a 
browser based in-place WYSIWYG XML editor. For a demo see: 
http://www.q42.nl/xopus/ (again: IE 5.5+ on windows only)

Implementing just an editable IFRAME would limit us to input forms.

Implementing contentEditable in the same way as it is done in IE would make it 
possible to make these applications, and applications we haven't even thought 
of, available for Mozilla users.
Er. Apparently the '-moz-user-input' property already works to some extent.
Hixie: I can't figure out how to use -moz-user-input (and -moz-user-modify and
-moz-user-focus) to let a visitor edit a page.  Do you know how?
PLEASE PLEASE PLEASE - just do it!  Do it with a <HTMLEDIT> tag, do it by making
any element editable - do it with propriaty extensions of HTML - do it by
emulating IE - Do it ever which way - But for the sake of having a truly viable
alternative to IE, and for the love of the Internet - DO IT - Please.

How can I as a web-developer convince my marketing/administration/power guys
that Moz is the way to go, when they cannot use the fancy editor they are used
to from Hotmail, Yahooo mail etc? To them that spells 'inferiour browser' and I
can whine for days about platform-independance, standards conformance etc. What
do they care? They all use windows anyway.

The Internet is moving from a Server/Client model to a P2P model - Still more
and more websites become dynamic, and less tech-savy users are beginning to
provide content on a massive scale. CMS is THE THING on the WWW part of the
Internet right now (much like real P2P is the buzz at the moment), people are
Blogging, chatting and providing content like never before. I've just
implemented a cool editor in IE - and it carves holes in my soul that I can't do
it in Mozilla but have to resort to a textarea and bbcode. My mother will never
get bbcode, and she'll never understand the connection between raw text with
some strange markings in it and a nicely formatted piece of text.

Listen to JT Smith - he has got more than just a point

I beg you - please do it - do it for the sake of Linux/Mac users, for the sake
of my mother, do it to bash IE and all of it's security holes, do it to help rid
us all from the Microsoft way of thinking, do it for your own reasons. 

I swear that if I could - I would, but I am not a C++ programmer, merely a
humble web-developer.
One more thing

All this XUL business is really great, and extending the editor is great too -
but first things first. If Mozilla is going to make it, it has to cater for the
users, then the web-developers and then the application-developers, not the
other way around.

You cannot underestimate 'sex-appeal' in the user-interface when it comes to
swaying users, and a textarea just isn't very sexy!
Just to add my 2ps worth to this  RFE. 

I have been advocating Mozilla over IE for 2 years now at every opportunity.
Perhaps the most common request I ever get hit with is - give us an alternative
to MSHTML - we want to do rich HTML editing via a web page and post back the
content - but without IE.

This feature would truly, truly rock my world and the worlds of shitloads of
other people. I have been playing with SOAP im Mozilla and the GoogleAPI all day
and it is superb. Now if only I could  press "Save HTML" and get my rich WYSIWYG
HTML  saving via a SOAP call to a backend. How cool would that be? 
Hi again,

I don't wanna start a flame war but using the DHTML Editor of IXplorer is a pain
in the ass, nice html code will be scambled without logic and for no reason.

But, as Esben pointed out: Users first - in my case customers first. And they
wanna  
make changes on a html page like writing a letter on a Word(processor).

I love mozilla and still dream about such a tool for moz. I strongly feel that
it can fight back some lost market share just about this feature (Mac users!)

Again: Most of the fuctionallity is already build in - so it cannot be such a
big deal. Please!

Just my 2c, Jaro
Hej Esben,

> You cannot underestimate 'sex-appeal' in the user-interface when it comes to
> swaying users, and a textarea just isn't very sexy!

Well we can. It's just a question of priorities. (before flaming me, please check
that I am the reporter of this bug). The list of priorities and the prioritization
(we need to invent P12N acronym for this word :-) of these priorities made it
impossible to have the current bug on top of list.
if there is a commercial need for this feature i think we could go and 'sponsor'
a developer to build what is needed (i saw this happening with the roaming
feature)... 
Hey Daniel!
>Well we can. It's just a question of priorities. (before flaming me, please check
that I am the reporter of this bug). 

Oh - I never flame people :) Unless, of course, they want me to. RC2 is
wonderful - it's slimmer, faster and generally a darling in all respects. IE6
still makes a big white flash when rendering a new page - sometimes with Moz -
you have to actually read the page to be sure it changed :) And the javascript
engine is a little wonder. I am doing rather javascript intensive project and it
is IE 5.5 and IE 6 that comes with strange errors all the time, Moz just does
what I tell it to do :) 

Sometimes IE6 and less just plainly "forgets" to load something that you wan't
included, and it changes readystate of elements before they are ready -
sometimes (but not all of the time ) it fires onload before the page-elements
are ready and so on and blablabla 

But this is not things that an average user appreciates. The average user is
primarily concerned with features - 

    User: Can it do this, can it do that ?
    Dev:  well yes but it leaves a giant security hole on you computer !
    User: Cool - I always wanted it to do this and that !
    Dev:  errh... yes but it leaves a giant security hole on you computer, and
the mac-users won't be able to do it !
    User: Do you think that we could make it do some other stuff too?
    Dev:  *shrug* yes I think that it is possible

My motivation for working with Moz is a mix-up of microsoft resentment, and the
fact that Moz comes on all platforms (the latter being the most important). Moz
makes my work easier, more creative and more enjoyable. Therefore it is very
important to me that people actually start using it on a massive scale. That
would have a direct and positive impact on my professional live. However people
do not understand 'pipelining' and they don't care. Which is not to say that
pipelining is not important and not cool - it is. In my book however it comes
second to editable elements, because editable elements will have a direct and
positive effect with the userbase, a thing like pipelining has a more subtle
impact and can therefore wait.

I am sure that there is a lot of important issues, and what I am doing here is
trying to put some weight in behind the editable thingy - to make that more
important, because to me and a lot of other web-devs it IS very important.

I really think that it should be done the most easy way - expose the elements as
editable to the scriptable part of the DOM, and let the web-dev community take
care of the rest. Very soon you will have an abundance of editors with toolbars
and all sorts of cool stuff. If you force some sort of toolbar with it you will
only restrain web-devs and their creativity.

Imagine me saying: "Oh your company prefers IE on the intranet? Well we can work
with that, but it puts certain limitations on the project... Have you considered
Mozilla? It's free and it is superiour and it will even work for those of you
who uses Mac " :) ?

>if there is a commercial need for this feature i think we could go and 'sponsor'
a developer to build what is needed (i saw this happening with the roaming
feature)... 

There is a commercial need, and it is currently being met by IE, I am only
representing myself and my one-man-company so I won't be able to sponsor it -
sadly...

With the advent of OpenOffice.org 1.0 and Mozilla 1.0 (and KDE and Ximinian
evolution and...) Microsoft will be getting a run for their money. There is not
one thing that an average medium-sized company is doing right now, that they
can't do on a Linux desktop. 

Now what is left is making sure that the advocates gets some ammo - and cool,
eyecatching features is precisely that sort of ammo - hence I'll reiterate:

    "You cannot underestimate 'sex-appeal' in the 
    user-interface when it comes to swaying users"

And I'll boldly continue

    "...and a textarea just isn't very sexy!"

And this feature is not only cool and eyecatching, it's actually valuable!

Priorities is what it is all about, and I am doing what I can to make this
edit-thingy seem more important, because to me it IS  important !

I love Mozilla - and I feel very grateful towards all actively involved in
creating it. I am part of the layer between Mozilla-developers and end-users. I
am one of the guys whose job it will be to sway users - that is why I speak my
mind on this matter, and that is why I think that editable content-areas are
important.
>I love Mozilla - and I feel very grateful towards all actively involved in
>creating it. I am part of the layer between Mozilla-developers and end-users. I
>am one of the guys whose job it will be to sway users - that is why I speak my
>mind on this matter, and that is why I think that editable content-areas are
>important.

Me too. I feel exactly the same way. And I can add even more weight to this on
two counts: 

1) I'm the Director of Technology at a Fortune 500 company in Chicago (to cover
my butt I won't say which one). Therefore I'm in a position to help mould the
direction toward products like Mozilla. Before I came to this company, almost no
one had even heard the word open source. They are now using Apache, Linux, Perl,
Java, Tomcat, JBoss, MySQL, Net Beans, WebGUI, and many other open source
products. And now I'm making a push for the desktop.

2) I'm the leader of WebGUI (plainblack.com), the open source CMS. There are
many big companies, universities, and schools using WebGUI and for the most part
they'd drop IE in a second if it would mean they could use our Rich Edit
functions in one common browser among every platform they use. Desktop-wise that
includes every flavour of Windows, Mac, Linux, and Solaris you can imagine.

If I had any programmers I could spare at either company you can bet I'd be
sponsoring this myself. As it stands I'll do whatever I can, though I'm not sure
what that is. Except maybe to say what I just said.
FYI, we have internal customers as well for this so it has a high likelyhood of
happening, although not before 1.0 goes final. Perhaps 1.2 depending on how
timing goes and what ends up being implemented/needed first. So please be
specific about what you need and what you want ideally, and thanks to those that
already have said as much.
What our organization needs at a minimum is shown in the example attachment (
http://bugzilla.mozilla.org/attachment.cgi?id=73094&action=view ).  I thought
the target was 1.1 ...

target is as soon as we can get done whatever we need to get done :-) That may
be 1.1, maybe 1.2, won't know for sure until we decide on a course of action
What I'd like from an editable content-thingy.
===============================================

1.  First and foremost I'd like it to be there!
    Silly point perhaps - but I can eat any solution,
    as long as it gives users a familiar word-processing-
    like environment in which to supply content.
   
2.  I'd like it to set me free - I am a web-developer
    I can judge my users needs when I talk to them. I'd 
    like to be able to respond to those needs, and not the 
    needs of the majority of browserusers in general.
    Any embedment of the composer should give an absolute
    freedom in regards to toolbars etc. Keybindings should
    be the standard, I have no need to introduce CTRL+SHIFT+F12
    when people are used to CTRL+C (or APPLE-C or whatever), but 
    all that has to do with the appearance and layout should be 
    optional. 
    
3.  I'd like to be able to tell where the caret is, so that I 
    can mangle the text as I please, and put the caret back where
    the user expects it to be (dynamic creation of URLs is a good
    example). Why this isn't in the W3C standard is beyond me. 
    
4.  The idea of a TEXTAREA with a new propertytype is in a sense OK,
    but not as an only option - I mean if it is somewhat quicker to 
    implement, then perhaps this is where it should start - but I 
    think that the idea of a 'contentEditable' property of div and 
    other block-tags (or any tags at all) is really the way to go. 
    Somewhere inside the belly of the Browsers memory it's all just
    data anyhow, and everything is just a node on a tree - why not
    be able to access it? I mean click on an image and turn it into
    a text - or, at the webdevs discretion, pop-up some imagechoosing
    functionality.
    
    The argument that the TEXTAREA will let older browsers display it
    as a plain TEXTAREA really isn't that good. If you are doing some
    serverside-programming (you'd have to in order to make the thing work), 
    you can do a quick serverside browsersniff and give people what they need 
    (you'd probably have to anyway - there *are* IE users out there :).

5.  All issues in the direction of 'how will the user know that this is editable'
    and 'how do we deal with linebreaks in a non-block element' is up to the 
    webdevs. They can use this poorly and fail, or they can use it brillantly
    and prevail, it's really not the concern of the people making the browser.
    
So to sum it up - what I pine for is FREEDOM to develop what I need/want.
A solution that makes a lot of choices for me, is also dictating what I
can offer my customers. I'd like to dictate that myself :) This is also
one of the charms of the whole OSS scene, that freedom where the only restriction
you meet is that of your own limitations. My limitation is that I haven't got
the time nor the skills to just download Moz-source and start hacking it myself.

I'd be happy to participate in a more implementation-centric discussion, but the
headline for my wishlist is FREEDOM!
I add my votes to Esben's post (esp. to p 1)

A div (with css-p) or textarea would be cool. 
Access over the DOM to the inner content of this node is a must to make fancy
dialog bodex/buttons etc (I think this is already the case in composer)

Moving the caret the the key arrows CTRL+X/V/C DEL BACKSPACE PG UP/DOWN POS1/END

Optional: An event/command for paste/copy from the lokal clipborad would be
great (For the usual toolbar) -- but this can be a security issue.

Jaro
Esben: #3 has a W3C standard. Try this:
var range=window.getSelection().getRangeAt(0);
var nodeAfter=range.startContainer.splitText(range.startOffset);
nodeAfter.parentNode.insertBefore(document.createTextNode('hello'), nodeAfter);

range.insertNode(document.createTextNode('hello')) should work too, but it has a
bug (I think)

A lot of things can already be done through javascript. The most important
missing feature is a visible caret. And it would be nice if user input handling
would be taken care of by Mozilla. (Moving the caret one position to the left
when the left key is pressed can be done with javascript, but you don't want to
script those things) These two features should be enabled when the css property
-moz-user-modify is set to read-write, for any element.
> The most important
> missing feature is a visible caret.

Have you tried caret browsing mode? Press F7 and you have a visible caret in the
browser window. It enables you to select stuff and move the caret with arrow
keys, but you can't edit anything.
Caret browsing: That's sweet. Shouldn't there be a menu item for this in Edit 
or view?

When was this added? Is there any way to set this using scripting?
Look at http://www.xs4all.nl/~ppk/js/index.html?/~ppk/js/cms.html for editing
text in Mozilla
This is a very basic, but I think a good script to start
Sjoerds example combined with caret-browsing is very exciting. It goes to show
that mozilla is actually not far from there. I agree however that scripting
key-events in order to produce content is not optimal 

Funny thing that caret-browsing, it may be buggy though, try it here:

    http://www.geocrawler.com/archives/3/140/1999/9/0/2691449/

My caret runs around inside the same element and cannot escape (I'm using RC2) -
I am not sure whether to file this as a bug, and I request that some of you go
have a look and decide if it is a bug.

It seems to me that all the functionality needed, already is in Mozilla, and it
only has to be fitted together?
To turn on browse with caret (read only) mode:

prefs=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
prefs->SetBoolPref("accessibility.browsewithcaret", true); // or false to turn
it off

Most of the "caret browsing gets stuck" bugs are actually editor bugs.  The same
bugs appear while typing an e-mail message or editing a page in Composer, and
will appear in <div style="-moz-user-modify: read-write; height: 5em; border:
2px inset #ccc; overflow: auto;"> or <htmlarea>.  If you find "caret browsing
gets stuck" bugs, please file them after searching the Editor components,
because that will make Composer and -moz-user-modify suck less at the same time
it makes caret browsing work better.

By the way, have you tried the "edit page" bookmarklet in IE?
   javascript:void(document.body.contentEditable = 'true')
It has many of the same problems as Mozilla Composer on complex web pages
because it's intended for creating simple content.  Many bugs that show up while
editing forms and tables on cnn.com don't show up often when you're typing an
e-mail message.  That doesn't mean we should ignore bugs found while editing
cnn.com (they do interfere with caret browsing), but those bugs don't prevent us
making -moz-user-modify work reasonably well.
>Most of the "caret browsing gets stuck" bugs are actually editor bugs.

I believe most if not all of these types of bugs are actually in the "selection"
component (not in an editor component).
If simply specifying a contenstype of text/html to a textaria 
eliment brougt up the composer for that textaria it would be 
a killer.

Its easy to use for webdeveloper, its easy to implement in different 
ways in different browsers (ie, call upp an extern app in an browser
only browser).

Browser not suporting it would give the raw HTML to edit so it is 
transparent to older browsers (it shuld require quoted HTML in the 
textaria to maintain that backwards compability).

Thanks /LaH
Hey folks,

I've been following this bug with interest for a while now. I have a client who
asked for a way to edit and/or add to pages in house, so recently embarked on
the journey to furnish them with such. I don't like doing platform specific
development, and generally do all my development in Mozilla, but after much
research it seemed that IE was the only browser which had all the functionality
I needed. I've never done any "IE only" development before, so it was an
interesting learning experience.

I've developed an application which basically lets certain parts of a page be
set editable, wraps them in a WYSIWYG editor with standard toolbar buttons to do
the formatting, and publishes the changes back to the server. It works a treat
if I do say so myself. It uses W3 standard DOM wherever possible, and for those
areas where it isn't possible I wrote thin wrappers which do the right thing
depending on which browser is used. All in all, it turned out much better than I
ever anticipated.

The thing that's really great (or really a shame, depending on your viewpoint)
is that it's almost totally cross platform. I did 90% of the development work in
Mozilla (and let me say now that development in Mozilla, while not perfect, is
at least an order of magnitude less painful than doing the same thing in IE);
save for the actual editing of text, everything looks and works exactly the same
in both browsers, including instantiating the editor and publishing changes. All
I'm missing for it to be completely cross platform is the ability to make a
block editable in Mozilla.

I've thought a lot about what form I'd like that to take. I think I agree with a
previous poster that exposing the basic functionality and letting the developer
build the actual editing application is the best way; it has the maximum
flexibility, and it's just not so hard to do that we need the Mozilla team to
present us with a fait accompli. I know there has been a lot of discussion about
simply putting in a tag and having an instance of composer show up, but that
would actually be bad for me. It's much heavier than I need or want, and almost
certainly wouldn't give me the control I need.

What I'd like is to be able to set a div, say, to editable and be able to do
operations on entered text. What that would mean is that I hit a key, the letter
shows up and the caret moves. Behind the scenes, I'd like to be able to either
set formatting on highlighted text (through an API ala IE perhaps) or wrap it in
tags of my choosing and have it rendered it accordingly (I've actually managed
to do this in Moz, but it's a little clunky because of problems with the range
object and it's not worth much if I can only use it with existing text).

As I say, I've gotten everything I described above with the exception of
entering text working, and I have a feeling that if I wanted to write some
really hairy Javascript, I could probably make that happen too; I may just try
it. The whole functionality is so damn close I can taste it, and it's really
frustrating not to be able to carry through. It's especially frustrating because
I have clients who would be willing to buy this from me tomorrow if it worked on
Macs, and it doesn't look like MS intends to expose this functionality there
anytime soon.

I know you want to focus on end users, but I can move a fair number of people
from IE to Moz immediately if you just make this functionality available. Moz
doesn't have to do all the work for me, it just needs to make it possible. I'll
take care of the rest. Before I go, I'd also like to say that I've more than
once stumbled across functionality in Moz that I didn't know was there and had
never seen documented; if something I'm wanting is already available (in any
form, as long as it can be used without hacking C++) please let me know where to
find info on it.
Can I just echo the sentiments expressed above.

I also have done a fairly complete editor that works in Mozilla. All I need to
polish it and make it better than IE is to be able to insert text at the caret. 

I do not want an embedded Composer - although I could put that to good use as well.

I want to be able to set a DIV on the page as editable, so that my keystrokes
will insert text at the caret or, it can take a selected range of text and wrap
or unwrap tags around it. 

Even if it was possible to calculate where the caret was in a DIV declared as
editable, I could hack some JS to insert my keystrokes.

Incidentally, the mshtml feature of IE is kinda nice. but it has a weakness that
Mozilla could exploit by the aforementioned caret enhancements. That is, the
code the various execCommands() produce is not valid XHTML. So, if you are
trying to produce well formed XHTML, mshtml  is of little use. You have to
resort to using the textRange object in a textArea or in an editable DIV. We
already got a range object in Mozilla, and we already have a getSelection() - we
just need to go that last half step and allow an editable area where selections
and ranges and caret insertion is possible. 

As the previous posts have said, give us that and we will do the rest. Hell, I
will even stick my editor on Mozdev and let everyone finish it and use it.

We needed contentEditable now to build a proof of concept of our Xopus editor 
on Mozilla. So we have made a very crude implementation ourselves.

See http://xopus.org/index.jsp?menu=mozce

This implementation is by no means complete nor stable but only meant as a case 
study. We still hope contentEditable will be part of Mozilla 1.1. 

Comments and additions are welcome.
Just previewing this brings tears to my eyes - *snort*...

Can't wait to download and play with it

Esben Maaløe
Depends on: 96392
*** Bug 147575 has been marked as a duplicate of this bug. ***
Im just gonna agree with all of the above we have a IE only app for editing web 
sites that we would love to make platfrom independent

plz plz plz put this in soon
The Xopus implementation is very close to my version.

It is obvious that very little really needs to be done to get this working. For
me the following is enough to  allow an explosion on HTML editors to appear:

1). Introduction of a contentEditable Tag 
2). The ability to identify the caret position inside an area where
contentEditable=true, in relation to the area. EG report that the caret is 10
characters along in the string representation of the content.
*** Bug 150609 has been marked as a duplicate of this bug. ***
See also bug 151765, which asks for a way to open Composer using javascript in a
web page (4xp).  I prefer the method in this bug: allowing the page to make a
div editable, and giving the page a way to ask the browser for a hovering
composer toolbar for functions like Copy and Paste that can't be done using
javascript.
I have recently implemented a simple XML editor in mozilla using -moz-user-input
styles. This CSS3 approach shows great primise. I have sent a copy of the editor
to Ian Oeschger for him to review. Unfortunately the CSS3 -moz-user-input styles
are only partially completed. Missing are:

1. A caret in input cable areas.
2. Tabbing between input capable areas.
3. A keyboard interface for character insertion/deletion.
I have managed to get around some of these limitations in the prototype.

I have been persuaded to place this project on MozDev with the intent of adding
XML dialect specifiec editors/viewers. E.g. Docbok, XUL SVG, XSL etc.

The editor also currently has a partial implementation of RelaxNG for document
validation.

I really need for some progress to be made in resolving the above problems
before any further progress can be made.

Any ides of What and When?
Would someone like to bump the target milestone?
Sounds like "Future" to me. No point in having it set to a milestone that's already passed.
Target Milestone: mozilla1.1alpha → mozilla1.2beta
I run a Linux shop.  Do development in PHP/MySQL CMS Tools mostly.  However in
looking for a way to allow users to do basic WYSIWYG I was damn impressed with
what you could to with IE and javascript (that isn't possible in Mozilla).  

Something like this would kick ass:
http://www.devarticles.com/content.php?articleId=90&page=1

The ability to specify a textarea which would allow folks to write as they would
in a Word Processor..

Mike
Wondering the discussion on dhtml, htmlarea, htmledit etc. I agree with Laurens
van den Oever and Peter Wilson, XML is the way forward.
Microsoft uses execCommand in contentEditable areas.
execCommand('command')places tags around or opens a tag depending on the
command. For instance execCommand('Bold') places <STRONG> tags around the
selection or opens the tag for new inserted content and closes the tag when the
command is called again. These commands are browser buildin (Dhtmled.ocx IE5+)
so your stuck with what micro$oft grants you. It would be more usefull if
execCommand can envoke commands based on the DTD used by the document your
editing...

JP
When is the release date (when Mozilla starts supporting functionality similar 
to IE contentEditable=true property)
there is no release date yet, we're scheduling the work and figuring out what
exactly we'll do in the first go round and who will be doing it
I also hope for this: 
My Reason: 
At this time it is not possible to use Mozilla for ANY Content Managementsystem
which use a web-based WYSIWYG Editor. ALL CMS i know only support Internet
Explorer for use.
You also can not develop an WYSIWYG Editor for Mozilla with JavaScript or DHTML
because there is no Engine which you use for this.

See my attach at: Bug 163249
*** Bug 163249 has been marked as a duplicate of this bug. ***
Blocks: majorbugs
Having the same view as stated in comment #89.
This is highly needed, as leading content-management-system vendors are all 
facing this problem and major companies won't decide for Mozilla if they are 
not possible to use their web based cms systems.

Keywords: ecommerce
Major European companies have asked about such a beast as well, so making topembed
Keywords: topembed
Add dependency on edembed
Alias: editable
Depends on: edembed
if this was then wrapped in an activeX control, this could be embedded in IE for
a consistant cross browser toll too
Looks like someone just put a bounty out on this bug...or its kin...the bounty
includes a monitary sum

http://radio.weblogs.com/0103807/ (bout 1/4 of the way down search for 'I Just
Can't Take Internet Exploder Anymore'

Looks like someone just put a bounty out on this bug...or its kin...the bounty
includes a monitary sum

http://radio.weblogs.com/0103807/2002/09/04.html#a535 (bout 1/4 of the way down
search for 'I Just
Can't Take Internet Exploder Anymore'
That's interesting! 
I've made editor embedding topics such as this (tracked by bug 157128) a major 
priority during the next few months (and didn't need any monitary incentive :-)
I studied the MS/IE HTML editor interface carefully today and we will have no
problems supporting this once the editor embedding goals are fulfilled; but if
you design an editor to our interfaces, there will be much better capibility,
of course!
I would be happy to throw in a case of beer to add to the bounty. I'm so sick of 
recommending that our clients use Explorer if they want to use our web apps. And they 
still don't work on Mac, only under Windoze. Whoever resolves this bug is making 
inroards against two monopolies. They certainly deserve all the support we can offer.
so contentEditable doesn't work in IE mac?
This editor functionality in IE definately does not work on IE Mac.  This is a
real stopper for us because we would like to do a fairly large rollout of MacOS
X. Mozilla/Netscape is preferred, but IE would have been adequate.
*** Bug 166987 has been marked as a duplicate of this bug. ***
changing alias per cmanske, akkana, glazman
Alias: editable → midas
The content-decoding issue should not be an issue. You spool the raw stream,
then once you know the target location, you move the file and pass it through
the chain of decoders (and this should all be happening on a non-UI thread of
course). If the decoders are HTTP-specific then that should be changed, since
other protocols may well want to do content decoding.
er, wrong bug, my bad.
Midas, because everything it touches becomes (Netscape) Gold :-)
Sounds interesting.  1.1 is out the door.
Keywords: mozilla1.1
------- Additional Comment #106 From Alex Vincent 2002-09-12 18:36 -------

Sounds interesting.  1.1 is out the door.
>>>>>>>

Why? There is nothing about contenteditable in 1.1 or 1.2 or at least nothing I
can see from the release notes.

Is the problem making it work on all platforms? If so, make incremental releases
that work on whatever platform allows. hopefully those that don't (apple...)
will expose things that allow their users to enjoy the same benefits as windows
users.

-Rob
I EARNESTLY and completely vote for this functionality to be added to mozilla 
ASAP!!!

This would be nirvana for our application - but it MUST work across platforms. 
We currently use IE contenteditable for our CMS to allow users to edit their 
page content. 

I implore you to add contentEditable to Mozilla. It will have a much greater 
impact than any other single thing that you can do and it will pay huge 
dividends in user base and increased downloads of mozilla. I have several 
thousand customers alone who would be encouraged to download Mozilla in order 
to edit the CMS content on Macs.
yes, yes! This is the holy grail of the editor. We are working hard on this!
We need to fulfill basic embedding requirements such as "removing editorshell"
(architexture restructuring) and conversion to command-oriented API, then we'll be 
able to make the jump to "in place editing" or what I like to call it, "editing 
everywhere."
added nsbeta 1 kw.
_____________________
This feature will have numerous benefits leading to increased Mozilla browser
usage and added value for embedded browsers:

1) Webmail sites (AOL, Netscape, Yahoo, etc) can easily offer parity with IE's
functionality, where you can compose messages with a WYSIWYG editor

2) AOL Hometown and other sites that host web pages could include HTML editing
capabilities in their page creation GUI. 

3) Companies that manage their intranets and websites using content management
systems can support Mozilla instead of or in addition to IE. Several
"evangelists" inside top 100 companies are trying to get their IT depts. to
support Mozilla instead of IE or Netscape 4 only. This is another critical
feature that will help them in this effort.

It is important to get more people using Mozilla inside companies so they then
want to use it at home etc. I know I'm preaching to the choir here!

This comment from a content management vendor:

Everyone from Vignette to Broadvision uses IE for their online editing tool
because of "contenteditable". There is nothing else available for this task
short of a java applet. Mozilla's adoption of this feature should naturally be
embraced by this market as well as countless developers all around the World who
expose editing functionality for their clients in this manner. Mozilla would
allow this functionality to be exposed on the macintosh platform which is used
by better than 90% of the design/ad agencies, which would further drive adoption. 
Keywords: nsbeta1
*This feature will have numerous benefits leading to increased Mozilla browser
usage*

I really wonder if the Mozilla folks know how true that statement is. This
feature has been a long time coming, and I've seen a lot of statements along the
lines of "we're concentrating on features useful to end users instead." Right
now I'm recommending IE to my end users, many of whom prefer Netscape 6.x,
because of the lack of this one thing. Not only is Mozilla not gaining users,
it's actively losing them.

The combination of browser based editing and Mozilla's cross-platform nature is
a killer app, people. There is a huge opportunity here, for both Mozilla and
developers. I've been following this with increasing frustration (I have one
client who's a Mac user who asks me when I'll have something he can use every
few weeks) and I've about given up hope. I wish I could help, but I've tried
several different ways of doing this in Moz (as well as the Bitflux and Xopus
editors), but nothing works nearly well enough to actually be usable by my
clients. I assume it requires hacking in the core Moz code and I'm no
programmer, so I'm useless there (go ahead, I gave you the opening, smack me
down ;).

Give me contentEditable functionality and I can (and will) have my editor ported
in less than a couple of hours. Once that's done I will have recommended IE to
my clients for the last time. I *know* I'm not the only one that's true of. If
you want to see an overnight explosion of new end users, it's right there waiting.
I hope the mozilla developers are listening to this latest round of requests. It
is really true that this is the thing that could really drive adoption forward.
The request should given much more priority.

We have many designer clients who do not have Windows machines. We keep a couple
of laptops around to loan out to them. One of our designers who is on his 3rd
project with us finally broke down and bought VirtualPC (we have been telling
him Mozilla will have this functionality soon...).

The people who are requesting this feature should not be counted as a single
user (if that is the determing criteria for working on bugs). Rather they should
be counted as 10s or 100s or possibly 1000s of users because they would directly
cause the spread of the browser. When this feature is implemented the browser
will grow much stronger roots.

Is there any kind of a status report from the moz devs on where this feature is?

best,
-Rob
Likewise, we have a site that is in use by thousands daily and have a feature
that I am not comfortable really pushing unless it can be offered
cross-platform. I would be behind the feature if I could recommend
Netscape/Mozilla for it.
As one of the main editor engineers working for Netscape, I will again say we 
are working very hard toward this goal. I'm very sorry we don't have andy specs
up, but basically we plan to support the MS/IE interfaces.
I'm talking with our own evangalism people today and also with the DIG group on
this issue. We are making good progress in 1.2 timeframe to have major editor
embedding work done that will enable this to proceed.
Charles,
That is great news.  I'm sure there are many like me subscribed to this bug that
over the past couple months have seen many users subscribing to the bug, but
haven't really gotten any update on the fact that developers were actually
working on it.  The last few posts I'm sure will give many of the subscribers a
lot of hope that we will soon see this appearing in nightly builds and releases.
 Thanks again for your efforts developers.
Great News Charles!

Just to clarify though, are you saying that the contentEditable attribute is 
scheduled for inclusion in the 1.2 final (October 30, 2002)? Or are you saying 
that you will have made the necessary modifications to the editor that will 
ALLOW contenteditable to be worked on and included in a future release? If the 
latter is the case, what is the projected date that we will see this in 
release? And perhaps when in a nightly build? 

Someone Please alert the list when this appears in a nightly build!!!
"contentEditable" attribute will probably not make it by 1.2, unless we are 
exceedingly lucky. And don't worry! You'll know when anything appears in a 
nightly build.
We need to investigate some security and events/focus issues besides the basic
editor work we are now doing.
We'll post time estimates as soon as we can.
For all people cc'd who want to use this functionality, you can help in a
couple of ways:

1) Please read this attached file, which contains the potential base set of
features that would be available.

2) Attach a text or HTML file with any additional "must have" and "nice to
have" features that would make content editable acceptable for you. 

Any example URLs that illustrate your requested functionality would be really
helpful. Or you could attach additional screenshots illustrating features
you're using in your systems today...or whatever you think will help.

(Please make sure to use Create an Attachment instead of writing in Comments,
which could very well get lost in this long bug.)

There's no guarantee all requirements will be met but your input will provide
great direction. Thanks.
I think the features listed in the attachment are heading in the wrong
direction.  By simply allowing javascript access to the selected text or the
word under the insertion point, and the ability to wrap/unwrap any arbitrary tag
around that text, or find out what tags inclose that text, it would be easy to
implement all these features and more in javascript.  Then a simple .js file
could be included to simulate the microsoft functionality for those who want it,
but those who want to do more will (like me) will have the power to do it.  
I agree that inserting arbitrary text or HTML at the current cursor position or
around the current selection is a must-have feature. But I also think that
providing easy methods for performing the functions mentioned in the previous
attachment isn't a bad idea, especially if it facilitates compatibility with
currently implemented web apps (that use the M$HTML functions).
We at Bitflux (http://bitfluxeditor.org) don't need all those HTML
Capitibilities, either, but I see certainly use for them for a lot of people.
But what we really would like is to get rid of our
now-written-in-js-character-inserting-with-caret-mode :) It works, but a lot of
people complain, that it's not the "Real Thing". For example, we can't simulate
the common use of the "end" key and going onto the beginning of a line.
Therefore what we (not speaking for others) really need is just good character
editing possibilities (as typing, deleting, moving around and maybe copy/paste)
within dedicated notes. If we then still can use the standard JS/DOM stuff
within that nodes, we're all more than happy and satisfied. And we should be
able to use it on non-html-namespace-nodes, as well, please :)
Just my 2 cents and thanks for your great work.
Ditto the bitflux guys et al. That is all we are looking for too. We would not
use anything in the list posted a few messages ago.
---------
One thing I like about IE is the ability to click an item and the control
(outerHTML) is selected. When you click again you are inside the element. 

Also, I would want the ability to tab through the nodes.  Example:

<div class="article">
  <h1>Title</h1>
  <div class="section">
    <h2>Sub title</h2>
    <p>Some <strong>para</strong> stuff</p>
  </div>
</div>

I can click on the article div which gets selected - when I hit tab it goes to
the H1, next to the section div, then to the H2, then the p, then the strong.
The tabbing selects the entire node/element. If the enter key is pressed focus
goes inside the selected element. I will get an example up tomorrow sometime.

sleepily,
-Rob
Attached file 2 extra wishlist items
I agree with the sentiment that it would be better simply to expose a usable API
for caret browsing and so on, because that will better lever the skills of the
wider mozilla community - i.e. javascript coding and UI design.

However, I'd rather have a suboptimal solution that it largely compatible with
IE contenteditable in the next few months, than an optimal solution in a couple
of years.  I don't care if it's written in *machine code*, if we can get it soon :-)

Thanks for the feedback, netscape people.
One of the greatest features of MSIE WYSIWYG Editors is a capability of pasting
a richtext from a clipboard -- it is particularly important for cut-n-paste from
MS Word. This is needed for those site administrators, who don't create a text
at  webpage, but transfer texts to the web.

If it is possible (at least, on Win32) to implement such feature, it will be great.
> One of the greatest features of MSIE WYSIWYG Editors is a capability of > pasting richtext from a clipboard  If this get implemented, you must be able to _turn it off_! We have so many problems, where clients paste their text in times new roman, and then a piece of Times text appears on a Verdana site. 
>We have so many problems, where clients paste their text in times new roman,
and then a piece of Times text appears on a Verdana site. 

It is so simple to remove any unwanted tags and attributes...

I can tell you about it.

>If this get implemented, you must be able to _turn it off_! 

Yes, you are right.
Attached file contentEditable API
I have been working with contentEditable since it was first introduced. My
company produces a commercial CMS that uses this functionality. Here's an
suggested API for Mozilla contentEditable:
Why not just implement it the same way as IE?
Attached are my thoughts on a contentEditable implementation. I do want to
point out that I don't want or need Composer or FrontPage level functionality.
The page layouts and styling will already be set; I just need to be able to
give my clients the ability to change some of the content within the site, and
give them some functionality as far as structural markup goes. They don't need
to decide that a heading is +1 font size in dark red; they just need to be able
to mark it as a heading.

I should also probably point out that one of the reasons I'm so hot to have
this is that I've found that Mozilla is a vastly superior development
environment to IE. I actually do most of my development in Moz, then tweak as
necessary to make it work in IE. Having to tell people they need IE to use the
end result just kills me (I just had a client yesterday tell me she'd use IE if
it was absolutely necessary, but she'd really rather find another way).

Cross platform in-browser editing is my current holy grail, and you guys are so
close. I really do believe making this available will make Mozilla *the*
browser to use for content management, and given that there is no question in
my mind that this is where the Web is headed, well... hopefully it'll come
soon.

Thanks folks.
Here is my list of wishes
Here is my list of wishes
Attachment #102484 - Attachment is obsolete: true
also has some ideas of how one might implement editable content... 
IE emulation through Javascript, etc...
A summary from attached the document:

An emulation of content-editable is *not* required, just the building blocks to
allow developers to make something similar. A proper implementation of
something like the (now-defunct) CSS3 UI WD withe the above features would be
fantastic.
Comment #130 and it's attachment say exactly what I was trying to say, but much 
clearer.  I really think this would be the way to go.  And as someone already 
said, you could implement IE's functionality in javascript and automatically 
load that script when a page designed for IE is viewed.
I will be seemingly one of the few voices *against* this proposed "feature",
mostly because suddenly adding contenteditable attributes will not allow pages
to validate  as valid HTML.  

In addition, while we're adding contenteditable, can we please get <blink> back,
and maybe <marquee> since IE has that, too?  

All that I ask is that everyone stop for a second, and think of the standards,
and the possible repercussions of another browser war.
> I will be seemingly one of the few voices *against* this proposed "feature",
> mostly because suddenly adding contenteditable attributes will not allow pages
> to validate as valid HTML.

You can add this attributes dynamically via JS for contenteditable user-agents, no? 
> I will be seemingly one of the few voices *against* this proposed "feature",
> mostly because suddenly adding contenteditable attributes will not allow 
> pages to validate as valid HTML.  

Alright, I take that back, my main reason for being opposed to this idea is
because of the factor of playing "catch-up" with IE. Please don't do it. Stick
to the W3C specs, and only the W3C specs. Otherwise, In 8 years, we'll be stuck
rewriting another browser from scratch.

Don't get me wrong, I *like* this idea of being able to edit a page's contents
directly in the browser, and I've played with XOpus and have been very impressed
with what it can do.  

However, I can't agree with a browser (or the group of people who are
responsible for it) that adds a feature for rendering or interacting with a web
page that is not in the W3C's specs, or tries to compete with another browser.

Say no to war on IE.
I don't see how the goal of this RFE, allow page to make arbitrary elements
user-editable in browser, violates html validity or a spec.  IE's use of a
contentEditable attribute does this, but there is no reason that mozilla can't
expose a simple editing API that doesn't violate existing specifications.

mozilla's mission is not to only implement things that are standardized.  There
is no standard for how to create an e-mail compose box (as far as I know at
least :) ), yet mozilla still implements one.  Likewise, there is no standard
for how an html (or xml) editor should work.  There is a standard for its
output, so provided that the result of using mozilla's implementation for this
RFE is valid html/xml, this should be a non-issue.
> I will be seemingly one of the few voices *against* this proposed "feature",
> mostly because suddenly adding contenteditable attributes will not allow 
> pages to validate as valid HTML.  

Actually this is a valid concern and Mozilla should indeed not implement a 
contentEditable attribute. A CSS property is a much cleaner approach, and more 
useful. If you still want the attribute then you can do that with one line of 
CSS.
------- Additional Comments From sjoerd_visscher@hotmail.com  2002-10-11 01:35
-------
>> I will be seemingly one of the few voices *against* this proposed "feature",
>> mostly because suddenly adding contenteditable attributes will not allow 
>> pages to validate as valid HTML.  

>Actually this is a valid concern and Mozilla should indeed not implement a 
>contentEditable attribute. A CSS property is a much cleaner approach, and more 
>useful. If you still want the attribute then you can do that with one line of 
>CSS.

A little less than a year ago I asked both the W3c CSS and HTML lists about
this. The CSS list powers that be said it was an HTML concern. The HTML list
powers said it was an UA's problem - it should not be part of the spec. Here is
a post I found in a quick search:
http://lists.w3.org/Archives/Public/www-html/2002Jan/0030.html

As to those who do not know how to use this without creating invalid markup, I
say you don't know how to use it. You can assign these items on page load or at
other events. There is no need to write your HTML markup invalidly.

-Rob
I don't think the question here is creating valid XHTML documents and it is not
a question of being backwards compatible.

The goal is to provide the functionality to get away from a static document to a
document (or part of a document) that can edited by the user directly inside the
browser. (Universal Canvas?)

The goal is not extend HTML. The goal is to allow developers to create
applications that allows editing.


I agree that the idea to use an contentEditable attribute is a bit stupid. It
was most likely done that way because it allowd MS a simple implemenation. MS
has a history of using attributes when CSS is more suitable.

The way to go in Mozilla is of course to use a CSS property. How about
-moz-user-modify or is that only for inputs? This also fits well with how IE is
doing it with contentEditable wich uses the inherit value by default which
follows the CSS semantic for the same value.

Just like -moz-binding is ignored by non Mozilla browsers, -moz-user-modify is
ignored as well. Going this way will allow any XML document to validate and it
will also make all old browsers being able to display the significant information.
> All that I ask is that everyone stop for a second, and think of the standards,
> and the possible repercussions of another browser war.

Standards are not standards until they are standardized. That's true for
everything in our world. Everything. And standards can becom extinct and
replaced by another one. And standards can change, Eric Meyer saying that
in that case, they are not standards any more until they are standardized again.

There is no current standard for making an element editable. And there is
no standards body currently working on this. It implies that in the meantime,
all vendors are going to find the best implementation they can have, and the day
they have it, they'll ask for a standards body to be the battlefield.

Being committed to standards does not mean not being pragmatic.

Daniel, Netscape's rep at CSS WG
as there is no w3c standard for this and a very wide spread existing
implementation, just do it simple.. as mentioned before, implement contenteditable

forget all the xhtml/xml blah stuff for the first cut... we just want something
simple which works...

honestly, if the xopus code was reliable it would be enough...

the direction of all the editor rework is cool, but that is not IMHO what this
bug is about... its about simple basic editing of text

KISS principle...
But what does it mean to "just implement contentEditable"? Because surely this
attribute does not have a well-defined semantics: all we can do is say how it
works on any specific version of Internet Explorer - but Microsoft may well add
arbitrary new functionality in future releases.
>------- Additional Comments From michael@kitsite.com  2002-10-11 05:43 -------
>But what does it mean to "just implement contentEditable"? Because surely this
>attribute does not have a well-defined semantics: all we can do is say how it
>works on any specific version of Internet Explorer - but Microsoft may well add
>arbitrary new functionality in future releases.

So what? The basic functionality needed is to be able to select nodes or partial
nodes and affect them with JS. Most of the stuff you should be handling yourself
(especially if you are trying to validate the content).

Aside: Since contentEditable did not exist before MS created it, then they
defined it. It is defined.

-Rob
> Being committed to standards does not mean not being pragmatic.

YES! that is it. Mozilla is being caged into standards which are already 
subsets of another browser ruling the planet. What are thet chances that 
mozilla will be adapted widely in its present form?-> uhm almost 2% jump to 5% 
perhaps. By the way, is Microsoft sleeping at the moment? NO! they will come up 
with even more unignorable features pushing Mozilla back to its oblivious 
stage. By the way, who is more active in w3c anyways? MS?
Keywords: topembedtopembed-
Alright, I understand that it's possible to mark up a page that will validate
and still use the attribute.  Now convince me that this won't spark another
browser war.  Why should Mozilla care what IE does?  By implementing nonstandard
things that IE does, the developers are admitting that IE is better, and they
want Mozilla to be more like IE.  Am I way off base here?
This discussion is destined to degenerate into a flame war. I suggest moving
non-development related comments to the newsgroups. This bug is already spammed
enough as it is (not that I haven't contributed to this myself).
Tony, see comment 10 and comment 114. The plan is to implement the IE interface 
and for good reason: Microsoft IE 5-6 have more than 90% of the browser market 
(That's being generous to non-Microsoft browsers). Microsoft extensions such as 
contenteditable are de facto standards. This isn't the first time (see the some 
of the DHTML properties) and doubt it will be the last time that Mozilla 
implements a Microsoft extension. If Mozilla wants to even be a viable 
alternative, it needs to support a number of Microsoft features. Otherwise the 
switching cost is too great, both for web site developers to support Mozilla 
and for users to use Mozilla (or derivatives).

Also see comment 108, comment 110, and comment 111, and comment 113. I see this 
as pragmatic: the more that is in common between the major browsers, the better 
for everyone.
"Alright, I understand that it's possible to mark up a page that will validate
and still use the attribute.  Now convince me that this won't spark another
browser war.  Why should Mozilla care what IE does?  By implementing nonstandard
things that IE does, the developers are admitting that IE is better, and they
want Mozilla to be more like IE.  Am I way off base here?"

My god, get off the ego trip. I say we just be compatible with IE so that
Mozilla will be compatible with more websites and maybe we'll get more then 0.8%
of the market some day.
"Why should Mozilla care what IE does?  By implementing nonstandard
things that IE does, the developers are admitting that IE is better, and they
want Mozilla to be more like IE.  Am I way off base here?"

Surely it can't have escaped your notice that this bug's raison d'etre is that 
IE *is* better than Mozilla with respect to editable content. It may be that 
Mozilla can implement editable content in a more coherent way than through the 
contentEditable attribute, but the more market share Mozilla loses through not 
providing editable content in *whatever* form, the more unlikely it is that 
Mozilla will be able to influence *any* future direction of browser standards.
Summary: [RFE] allow page to make arbitrary elements user-editable in browser → allow page to make arbitrary elements user-editable in browser
Blocks: 174709
Alright, I still think it's a bad idea, but in the interest of letting people
get to work, I'll drop the argument.

Best of luck,
Tony
Coming very late into the game with this thread...I would have to argue:  
contentEditable would be fantastic; duplicating MS functionality using 
execCommand et al would be horrendous.  I've just finished a 2 month long 
battle with creating a CMS WYSIWYG editor, and the workarounds I had to 
perform simply because of the MS model force me to drink...

I do not know about anyone else who has created / talked about the foundation 
of a CMS, but there is one thing that client have ALWAYS wanted:  the ability 
to limit the user of the CMS to a very particular style sheet.  The MS control 
does not allow you to do this without nasty workarounds (which i have done), 
but it would be SO much better if there were a way to insert / alter / edit 
the entire node properties through assignment.  Perhaps something like 
document.execCommand, but instead of "guessing" which parameters are 
available, the method could perhaps be passed an object (perhaps even a Node), 
which would serve as the template for the execCommand.

This to me (aside from the Range object) would be the most important thing in 
a WYSIWYG editor model.
I would like to draw back attention to comment #119. Rib Rdb I think has a good 
point with what he says there. What he describes would be just enough to create 
a range of functionalities. And it would be 'clean' as well (right?), as 
opposed to the m$ contenteditable ****.
Blocks: grouper
*** Bug 177128 has been marked as a duplicate of this bug. ***
Mozilla should omit clipboard commands from whatever API it gives to web pages
for wysiwyg editing.  Since Mozilla doesn't give users cut/copy/paste buttons
on the toolbar whenever they focus non-wysiwyg text fields, I don't think this
should be a problem.
jruderman: I agree with you that the clipboard should not be scriptable, but
note that text areas and other input-fields are clipboard enabled. For example,
you can paste into a text area via the content menu, the Edit menu, or via the
platform-specific keyboard accelerator.

In the same way, I'd be looking to have the clipboard functions automagically
enabled for any elements/nodes marked as user-editable, and disabled when not
user-editable.

Text editing without copy and paste is pretty sucky.
It would be nice to be able to script as a result of copy/paste, not necessarily
to initiate copy/paste. A related example is dragging of images into an area
from an image repository in a separate frame.
I will take whatever the engineers are able to give us as quickly as they can. 
I am hearing this will be in the next release of moz.

However, it would be shortsighted to abandon the ability to paste to/from 
clipboard from an editable area. This is something that users consider 
fundamental to any input area.

Rich text paste would be useful.
Did this make the target milestone of 1.2beta?
Keywords: mozilla1.2mozilla1.3
Target Milestone: mozilla1.2beta → mozilla1.3beta
Hey, you should all download the latest Mozilla build (1.3alpha --- sorry, this
did not make 1.2) and try this:
http://www.kaply.com/work/onepageeditor.html
Nice work. This is definately a good start.

I guess you already know that Mozilla raises an exception if this is tried twice
in the same session.

Should we start filing bugs for this or wait until more is in place?
Erik Arvidsson--
>I guess you already know that Mozilla raises an exception if this is tried
>twice in the same session.
Are you trying to create to editable iframes or do you mean if you reload?
There is a bug filed about the 'reload' problem which is a regression (Monday's
build works for that; possibly Tuesday's build too?).

>Should we start filing bugs for this or wait until more is in place?
Depends what it is.  If it's a security exploit, file the bug and be sure I'm
cc'd (brade@netscape.com).  If it's a missing command, there is another bug
filed on it (look in my bug list) so add a comment to that bug.

At this point I have no plans to implement the selection api IE has since IE's
own implementation is buggy/inconsistent and the document api seems to be
sufficient.
*** Bug 151967 has been marked as a duplicate of this bug. ***
I've been playing around with javascript to make an inline html editor, one that
would drive off style sheets and write "proper" XHTML. It's not trying to be IE.
I think Mozilla opens up a lot more possibilities. The result so far is at:
http://www.playsophy.com/Wrap/wrapblurb.html. 

The basic selection handling is there. Deletion was the biggest pain due in part
to what I think is a browser bug but it's largely there now but for debugging.
Styles et al should come before christmas.   
Hey folks,

I just got the chance to check this out a little, and it looks as if it only
works in an iframe? Is that so, and if so, is it going to stay that way? That
would make it next to useless for the way I use this functionality; I really
need a way to make a fragment of the currently loaded document editable.

Is a contentEditable attribute coming, or is setting an entire document to
designMode all there going to be (my apologies if these questions are already
answered somewhere; I've searched, but not found anything outside the midas spec
page)?
bugzilla@webwidgets.net (comment 167)--

You are correct that right now the rich editing is only available on an iframe's
document.  When that work is completed, someone may be able to undertake the
content editable aspects which will be much trickier.

Will it stay this way?  Hard to say for sure.  If someone steps up and writes
the code and tests it, it can go in.  If not, then it won't.  Personally, I
won't be able to undertake this task for the foreseeable future (next 3 months).
 Are you sure you can't use iframes which contain the data you want to edit?

>...is setting an entire document to designMode all there going to be
Setting designMode in mozilla is done on an iframe's document (not the parent
document).
Thanks for the info.

>  Are you sure you can't use iframes which contain the data you want to edit?

Well, I was hoping to duplicate the operation of my editor for IE, which depends
on the ability to set certain (and arbitrary) blocks of a page editable in place.

I might be able to fake it with iframes, but not easily and not without writing
a completely different implementation, which I was hoping to avoid. I'll spend
some time looking into it.

> Setting designMode in mozilla is done on an iframe's document (not the parent
> document).

Yes, I understand that; sorry if I wasn't clear. Again, though, for me to be
able to avoid maintaining two totally separate code bases (which I'm not sure I
have the time for) I'd need to be able to have only certain parts of that loaded
document be editable, or be able to load fragments of an existing document as
the iframe's doc. Doable, but not easily with my current backend, and given that
IE works now I just don't know that I can justify the time and effort. I'd love
to have something cross platform, but all my current clients have Windows
available or can delegate to someone who does, so...

In any case, thanks for the prompt answer; I do appreciate it.
bugzilla@webwidgets.net (comment 169)--
>  ...duplicate the operation of my editor for IE...
You might want to look at the samples at these locations (which I'm told work in
both IE and mozilla):
   http://www.kaply.com/work/onepageeditor.html
   http://www.kaply.com/work/wendedit.html

The above don't use contenteditable but do use designMode and iframes.  It may
not work for you in your situation if you have a complex process which involves
multiple editors etc.
> You might want to look at the samples at these locations (which I'm told work in
> both IE and mozilla):

I'd already seen both of those, but thanks. My problem isn't that iframes don't
work in IE; it's that I tried and abandoned that approach a long time ago, and
my current setup isn't really compatible with doing it that way.

In essence, making an editable iframe is doing things the old way, only instead
of having just a form on a page to enter plain text into you have something that
can create html. An improvement, but the other features of modern browsers make
so much more possible, and I'm loathe to go back to that way of doing things. It
may be fine for something like a blog or posting to a message board, but get
beyond that and things start to get clunky.

I've played with the iframe stuff a little, and unfortunately it's not going to
work for me. I may do something with it in the future so those who can't or
won't use IE on Windows have *something* to work with, but as it won't be nearly
as seamless or as usable as what I already have I fear my best bet is to keep
recommending that my clients use IE. Disappointing, that.
so do you want inline editing, of HTML as HTML? Say user-modify=read-write for a
section, say any id'ed section, let's you type away in that section. That's what
I want. 

As I said in a previous comment (#166), I'm playing with javascript to allow
inline editing like that. It's basic now but it should support styles and spans
by christmas and there's a focus bug in the browser that can kick in after
deletion. I don't think you need any custom widget per se, just something to
push the DOM around as you click away. 
conor play:

Yes, I took a look at what you have and that's very much along the lines of what
I need. I had tried to do something like this in Moz some time ago, but various
bugs in the range object prevented it from working well enough to be usable.

What you've got done so far is too basic for my uses, but where you plan to go
with it sounds good. Given that it doesn't look like Moz is going to get a
contentEditable attribute, I'll take another look. I dislike having to deal with
all the keystroke handling manually (and using caret browsing *really* feels
like a nasty kluge), but if that's the way it is then that's the way it is.

If this looks like it'll eventually work for me and I can budget some time, I'd
be happy to contribute to the effort if you'd like. In any case I'll take a
closer look at it within the next few days.
Flags: blocking1.3a?
Flags: blocking1.3a? → blocking1.3a-
We have today released a new sub-release of Xopus: contentEditable for
Mozilla. Please look it up at http://xopus.org

Mozilla 1.3 supports editing of pages, but only by entering designmode
for a complete page. This obviously isn't how you and me would want it, but 
still it's a start.

Our unsurpassed moz2ie.js library has now been extended to tweek this
designmode behavior and make it look like true contenteditable the way
Bill intended it to be.

You can make almost any HTML element editable using one of two ways:
1.  <div contenteditable="true">you can edit this!</div>
2.  <div id="test">you can edit this</div>
    <script language="javascript">
      document.getElementById('test').contentEditable = true;
    </script>

We hope this will help developers build richer Mozilla based internet
applications.

Our implementation isn't complete yet, of course. Please feel free to enhance 
the code.
Flags: blocking1.3b?
Flags: blocking1.3b? → blocking1.3b-
here's another iteration of inline editing using a tweeked DOM:
http://www.playsophy.com/Wrap/wrapblurb.html. Use either -moz-user-modify CSS or
ContentEditable and include one file, wrap.js, in any page you want to make
editable. This works in the currently released browsers - it doesn't rely on
"DesignMode". Of course, it needs a lot of work still and a good reliability
pass is in order.

My two pence worth on inline editing in Mozilla is:
- with some fixes, the core Mozilla DOM can easily and cleanly support editing.
Mainly this amounts to a few extensions and fixes to Range.
- cross browser compatibility should mean nothing more than supporting IE's
proprietary contentEditable attribute. It does not necessitate emulation of
every IE DOM routine and attribute. ContentEditable should be supported but
support should mean letting end users set this property to activate and
deactivate native DOM editing appropriately.
- fragmenting the code base by maintaining a proprietary "editor" DOM is a waste
of resources and of the core DOM's potential. It will probably mean never
pulling ahead of IE, at least in the area of editing. With all the work in XML,
XHTML and CSS, there is a ton of room to leap frog current IE-based editing. It
seems a shame to just "me too" old IE features rather than supporting more
through fixes and small extensions to the core DOM.

Happy holidays!
Why the cursor is visible on the entire content? Isnt it suppose to show up if
the  purpose is editing only? It is good to have contentEditable feature for
Mozilla ,but Users should not get the feeling that they are on editmode for all
the web pages they browse. Is there a way to turn it off or it is there to
stay(hope not).
Never mind, it is fixed on today's build.
If I understand this bug correctly, then it would make Mozilla meet one of
TimBL's visions for a browser.  It could also edit.  See www.w3.org/Amaya which
is a browser/editor that works in this way. 
(added myself to the CC list)
I'm very interested in this, but only really if it can give proper XHTML editing
as a minimum, and free XML editing (with CSS formatting of XML elements) in the
best case. The former would allow me to use XSLT to get the output into the
correct format without doing any messy HTML->XHTML conversions first, which
would be great, and the latter would just be fantastic. Still, the progress made
so far is good.
Yes I agree with that it should generate proper XML compliant code. This allows
us to do:

Editor => XML
 
XML + XSLT => XHTML

or even:

XML + XSLT => XSL FO => PDF

And all without the need of cleaning up HTML code inserted via the editor.
This prevents us from the garbage in garbage out routines ;-)

Microsoft's contentEditable also has some "support" for this:
When you copy/paste data form Word 2000 into a contenteditable div is shows up
as xhtml-ish code...

Keep up the good stuff
Oh Please JP,

You're right Microsoft insert word data as xhtml ****, in the meaning that it
has a XML-valid markup. It does however include all kinds of proprietary garbage
tags and a lot of Markup that is very inefficient. I sure hope the Mozilla crew
will make something that produces valid XML, and it would be very nice to get
CLEAN XHTML, but I'm not throwing away my garbage cleanup routines just yet.
Sorry for the sarcasm, but I think it VERY hard to produce clean HTML,
considering my cleanup routines(and others I've seen) aren't altogether perfect
yet either.
I know, I know. My clean up regexz are starting looking like the Himalayas to
straiten Micro$oft pastes... 
*** Bug 191833 has been marked as a duplicate of this bug. ***
Flags: blocking1.3?
minusing request for 1.3; there isn't even a patch to land here!

Some of you watching this bug may be interested in trying this in a recent 1.3
build:  http://mozilla.org/editor/midasdemo/
also see:  http://mozilla.org/editor/ie2midas.html
           http://mozilla.org/editor/midas-spec.html

Any issues found should be filed as new bugs (assuming they aren't already
filed).  Updates to the above documentation are welcome too!
Flags: blocking1.3? → blocking1.3-
Thanks for the very nice example. There are some errors being reported in IE6
(Windows XP pro) regarding the InitToolbarButtons(); functions as well as when
trying to view source. Anyone else see this?

Overall though, a very nice example and glad to see this finally available. If
anyone has any more examples and contributions, please post them - this is very
exciting stuff!!!

I am curious if anyone besides myself is in the process of creating a flash
based toolbar for the editor? I think this would be perfect since you could
execute the function calls using the getURL() syntax from flash and it would
atleast insure that your toolbar would look exactly the same in IE as in Moz.
I found that IE 6.0 has a problem with addEventListner.

I used thist construct which works for me.

  if(!document.addEventListener) { 
	document.onmousedown = dismisscolorpalette;
	document.getElementById("edit").contentWindow.document.onmousedown =
dismisscolorpalette;
	document.onkeypress = dismisscolorpalette;
	document.getElementById("edit").contentWindow.document.onkeypress =
dismisscolorpalette;
  } else {
	document.addEventListener("mousedown", dismisscolorpalette, true);
	document.getElementById("edit").contentWindow.document.addEventListener("mousedown", dismisscolorpalette, true);
	document.addEventListener("keypress", dismisscolorpalette, true);
	document.getElementById("edit").contentWindow.document.addEventListener("keypress", dismisscolorpalette, true);
  }
In order to prevent this bug from getting more spammed than it already is, I've
set up a Midas listserv to facilitate discussion among web application
developers regarding Midas implementation and troubleshooting. I will send you
all an invite shortly.
Sorry if I invited some of you twice, I was having trouble mass inviting
everyone at once. Anyway, here's the info regarding the mailing list...

You can subscribe or unsubscribe to the list here:
http://listserv.moses.com/listserv/listinfo/midas

If you are a member, you can post by emailing midas@listserv.moses.com.
re: comment 186, IE does not implement addEventListener. If memory serves me
the equivalent call is |window.attachEvent("onload", myHandler);| (for the case 
ofsetting an onload handler). Note there is no 'capturing' parameter, and the 
event identifier includes "on".
I don't know if this bug is still "active" given Midas' release but to the
interested I've added to the pure DOM-based implementation of ContentEditable
that I'd posted here around Christmas (comment #175). My main goal is an
XHTML/XML editing module that builds on the w3c DOM - among other things, such a
module provides for a straightforward implementation of standards-conformant
ContentEditable. Demos and scripts and more information at
http://www.playsophy.com/Wrap/mozce.html.
for those interested specifically in "contentEditable" as opposed to
"designMode", the contentEditable/mozUserModify implementation I posted about
before is now a mozdev project called "mozile" for Moz(ila) i(n)l(ine) e(ditor):
http://mozile.mozdev.org.
adt: nsbeta1-
Keywords: nsbeta1nsbeta1-
*** Bug 209553 has been marked as a duplicate of this bug. ***
OK, I'm now running 1.6b and this was targetted for 1.3b. What is happening with contentEditable? 
Yes, we have Mozile, but I would much rather have it in Mozilla (and Safari, but that's another 
case).
(In reply to comment #194)
> OK, I'm now running 1.6b and this was targetted for 1.3b. What is happening
with contentEditable?

It appears to be dead. Nobody in the Mozilla organization appears to have a clue
as to why it would be useful, nor do they appear to be willing to get one from
those who are more informed.

> Yes, we have Mozile, but I would much rather have it in Mozilla (and Safari,
but that's another 
> case).

You may get your wish wrt Safari. Dave Hyatt has said that contentEditable is
near the top of his list of things to implement, and I read within the last
couple of weeks (can't remember where or I'd give a link) that Safari will be
getting cE in the not too distant future.

IE and Safari users will therefore be moving ahead with the functionality that
users are demanding while Mozilla argues about important stuff like who gets to
use what icon...
This is great news! Finally we will have a browser on OS X that will support contentEditable. I actually 
did think that Mozilla would get there *much* faster than Safari, but how wrong I was! Time to degrade 
features for Mozilla or drop Mozilla completely from our CMS-product then.

Quite sad actually... that it takes >2.5 years to implement a heavily requested feature (it's not magic) in 
Mozilla.
Has this perhaps been silently solved - at least for some people's needs - while
we weren't looking?:-) Mihai Bazon's HTMLArea (currently at version 3.0 RC 1)
works with both IE 5.5+ and Mozilla 1.3+ - apparently using the "MIDAS"
component in the latter case. Works with Firefox as well as Mozilla. See:
http://dynarch.com/mishoo/htmlarea.epl 
HTMLArea - A replacement for TEXTAREA elements.

You are right, it will work for some people, but not for those wanting to, for exemple, edit certain parts 
of a web page, but not others.
The Midas component in Mozilla 1.3+ and Firefox 0.6.1+ implements "designMode",
which is very similar to MSIE's "contentEditable". It works great for editing
content in web content management systems etc. and it is quite easy to make a
simple web content editor with basic functionality. (However, cross-browser
support and more advanced functionality requires a lot of additional
Javascipt/DOM programming to handle differences and limitations).

We have supported it in our own cross-platform web content editor product
(http://editor.hardcoreinternet.co.uk/) ever since Mozilla 1.3, and we would
love to hear from you if it does not work with your version of Mozilla 1.3+ /
Firefox 0.7+ (on Macintosh, Linux or Windows).
If HTMLArea doesn't meet your needs, see the Bitflux editor
http://bitfluxeditor.org/
Insults about cluelessness from people who spam bugs with advocacy comments are
a good reason to revoke bugzilla access from those clueless people.

Clueless Safari fans can cling to every word from the mouth of hyatt if they
want to, but let's get real and talk again (and not in the bug system) only
after Safari actually ships a working content-editable support.

This bug is being degraded by childish noise that does not help get it fixed. 
Since I still (in spite of being insulted by the likes of comment 195's author)
value content-editable, but have no time to implement it myself, I am actively
looking for volunteers who can do the hacking to make it work in Mozilla.

However, most of the talented hackers I know dislike bugspam intensely, so I'm
inclined to close this bug, open another one, and revoke bugzilla access from
anyone who spams that bug.  How's that for vending a clue, hmm?

/be
(In reply to comment #201)

> This bug is being degraded by childish noise that does not help get it fixed. 
> Since I still (in spite of being insulted by the likes of comment 195's author)
> value content-editable, but have no time to implement it myself, I am actively
> looking for volunteers who can do the hacking to make it work in Mozilla.

Brendan,

I think it would be useful for people like me that would like to help in having
this feature in place but have no strong knowledge of the mozilla internals to
have a few pointers on how this should be done.

I mean, mozilla is a relatively complex piece of software and content-editable
is not something you get from a side (like an few XUL and javascript files), but
a rather intrusive feature that will probably have to deal with a lot of the
mozilla internals.

Personally, I'm scared by the complexity of this task. But it would be
*extremely* helpful to have an insider view of the problem and guide people
inside the jungle so that they don't have to explore it themselves.

I think this is the reason why this bug hasn't been fixed yet: those who know
how to implement it are busy doing more important things and those who really
want this feature are normally javascript programmers and have no clue on how to
deal with the mozilla internals or are scared by the complexity of the task.

All we need is a little bridge across these two islands so that we can walk to
your side and help.
(In reply to comment #202)

> Personally, I'm scared by the complexity of this task. But it would be
> *extremely* helpful to have an insider view of the problem and guide people
> inside the jungle so that they don't have to explore it themselves.

I agree. I think I know how to implement contentEditable in Mozilla.
But the current bug went totally out of control, from a comments point of view.
I am just fed up with reading noise, and seeing the useful comments in this bug
drown in an ocean of spam.

> I think this is the reason why this bug hasn't been fixed yet: those who know
> how to implement it are busy doing more important things and those who really
> want this feature are normally javascript programmers and have no clue on how to
> deal with the mozilla internals or are scared by the complexity of the task.

This is the case for all bugs.

> All we need is a little bridge across these two islands so that we can walk to
> your side and help.

Eh. We don't need "a little bridge". We need 60 hours days. 
More contributors, less trollers.
Closing (see comment #201).
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
*** Bug 249692 has been marked as a duplicate of this bug. ***
Summary: allow page to make arbitrary elements user-editable in browser → allow page to make arbitrary elements user-editable in browser (contentEditable attribute)
I was wondering, have we gotten any closer to a working contentEditable solution?
(In reply to comment #206)
> I was wondering, have we gotten any closer to a working contentEditable solution?

It's unfortunate that scanning this case I don't recall seeing anyone mention
the killer reason for having something like contentEditable.

This is to allow Mozilla to become the 'universal canvas' for UI design across
platforms. With SVG as well, you can then design complex UI that is controlled
by an outside business application, written in something stronger than a script
language (e.g Java, Mono etc).

Commercially, this is what the company I work for has done. We use IE as the
rendering surface for our UI and we also use it as the print and reporting
engine (there's a 'DrawToDC' method that allows anything on the browser to be
sent to the printer, though I doubt Mozilla has anything directly comparable
with this.

The business logic communicates with the UI via Javascript (using execScript).
This provides a very elegant tiered layer which can be customised in the field.

Using behaviors we have UI widgets like tabbed dialogues etc (though XUL would
obviously be an acceptable replacement for that). But I need to be able to mark
individual fields contenteditable and I also need a working textRange object and
good Javascript hooks before I could consider doing anything like this outside
of IE.

So that's the real reason for contentEditable; not just in-place HTML editing of
web pages. In our application, in fact, all HTML is loaded from local files. But
HTML provides everything that Avalon promises - only here and now. 

PS: If I had to vote, I would much prefer contentEditable was a style, so that I
could use CSS to control which fields are enabled rather than have the rather
ugly contenteditable=true attribute.
No longer blocks: majorbugs
*** Bug 322335 has been marked as a duplicate of this bug. ***
*** Bug 340375 has been marked as a duplicate of this bug. ***
Fixed on trunk in bug 237964, so unless something surprising happens, this will be in of Firefox 3.
Alias: midas
No longer depends on: 96392, edembed
Keywords: helpwanted
Resolution: WONTFIX → DUPLICATE
Depends on: 1497480
You need to log in before you can comment on or make changes to this bug.