Closed Bug 16409 Opened 20 years ago Closed 14 years ago

invoke spell check in browser window (multiple form fields)

Categories

(Core :: Layout: Form Controls, enhancement, P3)

x86
All
enhancement

Tracking

()

RESOLVED FIXED
Future

People

(Reporter: rubydoo123, Assigned: kinmoz)

References

(Depends on 1 open bug, )

Details

(Keywords: helpwanted, Whiteboard: See above URL for a Firefox spellcheck extension)

Attachments

(3 files, 1 obsolete file)

I received a request from IBM -- they would like to be able to invoke spell
check from the browser window. The workflow scenario is this: They utilize a lot
of forms, which consist of numerous text fields. They would like for the user to
be able to fill in the form fields and then run spell check to ensure proper
spelling. This makes a lot of sense especially if the data is being ported into
a database of some sort. The underlying architecture is there, providing the
access is where the work comes in, but that should be trivial I would think.
Summary: invoke spell check in browser window → [RFE] invoke spell check in browser window
QA Contact: leger → sujay
QA Assigning to Sujay. (Spell check-issue.)

Sujay: Do you know which engineer owns spellchecker and should receive this bug?
Assignee: don → karnaze
Component: Browser-General → HTML Form Controls
Since this is lying around in Browser-General, changing component to HTML Form
Controls and reassigning...
Assignee: karnaze → buster
Reassigning to Steve.
Status: NEW → ASSIGNED
I could provide the hook for some controller to spell check a single text
control, but is would be up to the browser team to write the code to enumerate
all the text controls on a page and spell check them one at a time.  Some extra
work would be required to support things like "replace all" across multiple text
controls.
Here's my plan:
1) put in the underlying API to allow spell checking in a single text control.
This is simple.
2) get a discussion started on the newsgroup with the editor and browser folks
to find out what mechanisms are required to make multiple-textcontrol spell
checking happen.
3) make sure all the infrastructure for this is in place.
4) work with beppe and don to prioritize the feature, maybe somebody from IBM
would be interested in implementing it if we give them enough plumbing?  Beth,
want to cc your IBM contacts?
Target Milestone: M20
moving to m20 along with the other RFE's
Blocks: 21564
*** Bug 20852 has been marked as a duplicate of this bug. ***
Reassigning to beppe (editor).
Assignee: buster → beppe
Status: ASSIGNED → NEW
assigning to Kin for review
Assignee: beppe → kin
Accepting bug.
Status: NEW → ASSIGNED
moving to future milestone
Assignee: kin → beppe
Status: ASSIGNED → NEW
Target Milestone: M20 → Future
moving back to previous owner
Assignee: beppe → kin
Accepting bug.
Status: NEW → ASSIGNED
No longer blocks: 21564
adding help wanted keyword
Keywords: helpwanted
This feature is also useful for web mail (and Bugzilla comment textareas :-)
*** Bug 63059 has been marked as a duplicate of this bug. ***
Depends on: spellchecker
*** Bug 66109 has been marked as a duplicate of this bug. ***
It would also be useful to be able to right-click on a textarea and select
"Spell check" to check a single form control.
An option for check spelling every textarea before submitting any form would be
ideal. I use mozilla with a web server as a database administration tool for a
web site (as many other do) and being able to submit the information without
having to write it on a word processor would save a LOT of time.
If Editor has Spell Check, this would be a really cool feature!!!!
Depends on: 23421
No longer depends on: spellchecker
Summary: [RFE] invoke spell check in browser window → [RFE] invoke spell check in browser window (multiple form fields)
Depends on: spellchecker
No longer depends on: spellchecker
Blocks: 119232
removing myself from the cc list
i'm very interested in working on this. could someone fill me in on status and
direction for next steps?
CCing David in hope he would be able to answer Sid's question.
The bug to look at fixing is 129704.  Once the spellchecker interface can take
and arbitrary chunk of dom text, and check and modify it. Adding spellcheck to
the form fields will be relatively easy. [As will not checking quoted text, and
all of the other clunky features of  the current checker.]  The checking part is
relatively easy -- look at nsFind and nsWebBrowserFind, the replacing is tricky
-- look at nsTextServicesDocument. 
Depends on: 129704
*** Bug 138025 has been marked as a duplicate of this bug. ***
*** Bug 148703 has been marked as a duplicate of this bug. ***
beppe - Since IBM originally put in the feature request, is there any chance
they'd be willing to dedicate the resources necessary?
I have no idea if they would or would not. But, I think this particular request
is gathering interest from netscape folks.
is any work being done on this?

Check out this nifty add-on for IE: http://www.iespell.com/

Could we perhaps target something similar, an xpi-based add-on to be distributed
via Mozdev or other channels?
iespell is a third party add-on for IE, but this doesn't diminish the fact that 
it *is* a killer IE feature, for those who are familiar with it.
Advocating Mozilla to these users is difficult at best. It blocks Bug 
92997 "Bugs that make Mozilla advocacy harder" (although formally it doesn't 
yet).

With mozilla I have to copy and paste the text to an external spell checker. 
Not nearly as user friendly.

An iespell clone is where we should aim at, it has prefect design and 
implementation, IMO.

Prog.
Blocks: advocacybugs
Is this bug asking for a spell cheacker for forms?
> Is this bug asking for a spell cheacker for forms?

Basically, yes.
Summary: [RFE] invoke spell check in browser window (multiple form fields) → invoke spell check in browser window (multiple form fields)
Same comment as what I see everyone else has to say.  IE has this as a killer 
feature.  Spell checker is obviously available, just needs the hooks into the 
browser window.  Anxious to see this one available!  (Don't know about anyone 
else's thoughts, but why look for a plug-in if the capability is already 
available!)
*** Bug 184194 has been marked as a duplicate of this bug. ***
UI suggestion for TEXTAREAs:

Put a small spellcheck button/icon in the upper-right of each textarea.  Click
to check spelling of that textarea.

If the textarea has a vertical scrollbar, put the icon above and in line with
the scrollbar.

(I personally don't need to check spelling in one-line text INPUT widgets, and
spellchecking everything on things like a Bugzilla form would be a hassle.)

Having a Check Spelling item in the textarea's context menu would be OK, but the
icon is the kind of cutesy thing that gets people's attention.
And I suggest it only show that little checkbox either, when you have your mouse
over that field, or it is in focus.
I suggest that all misspelled words automatic get a red underline like in
gnome-spell.

And you get the spell checker interface by right clicking on the misspelled
word.

A option to underline all misspelled words in the entire web page 
would be good for web development.
There are three browsers at the moment that already offer this functionality:
Microsoft IE6 (via ieSpell), OmniWeb 4.1.x for Mac OS X and the new public beta
of Apples' own Safari browser.

As time goes by, this will be a standard feature on all web browsers (as it is
today on most word processing applications and email clients).

Prog.
"As time goes by, this will be a standard feature on all web browsers (as it is
today on most word processing applications and email clients)."

I really don't think the devs care. It is my experience with this project that
it takes an act of god to get any non-crash/non-critical bug fixed or feature
added. But the time that becomes a standard feature it will take Mozilla devs
another 4 years to catch up. Because implimenting inovative features (or *any*
new version for that matter) is not something that I believe the Mozilla devs
understand the concept of. They tend to like playing catch-up instead. I think
they have a limit of a few unique/inovative things per every four years
(TypeAhead Find, pop-up blocking, tabs).

*sigh* All well, what can you do.
*** Bug 200877 has been marked as a duplicate of this bug. ***
*** Bug 200939 has been marked as a duplicate of this bug. ***
It seems like the author of ieSpell would be willing to implement this in 
Mozilla, but he does need some help. Here's a quote from ieSpell's forum:

"Support for Mozilla would be possible if I can get my hands (or know where to 
anyways) on its DOM APIs! Any Mozilla gurus willing to offer a hand?"
http://groups.yahoo.com/group/iespell/message/186
http://www.iespell.com/contact.htm

Anyone?

Prog.
>It seems like the author of ieSpell would be willing to implement this in 
Mozilla

That would be great because I would be able to add words to user dictionary only
once if I use IE and Phoenix. Of course, ieSpell would have to share the user
dictionary for different browsers then. And rename to something more generic.
In my opinion, UI clutter such as red underlined text and icons within textareas
are really, really bad ideas. Please, keep it simple. All you need is a right
click menu item for individual forms and an upper menu item for the whole page.

That being said, I think this enhancement is really important. Many
non-technical people rely on web mail for their day-to-day correspondence and
Scoop/Slash style dicussion boards are becoming more and more important news
sources.
I agree with Mark the Ominous Squirrel.

A right-click context menu is fine to start with.  Get the functionality in
there right away, then worry about the frills.

(Yeah, I know I was yabbering about icons and such, but I'm more eager for the
feature then it's appearance.)
A right click -> spellcheck  would be a GREAT addition to Mozilla, even if it
only checked the current field. This might actually be an advantage over
IEspell, as it checks all form fields, including hidden ones (AFAIK)
Is there any activity being done to close this bug?  Can anyone give an guidence
on where to start.  With IE not coming out with a new version until Longhorn,
this is an excellent opportunity for the mozilla browser to leapfrog IE in
features (again ;) ).
Sorry, should have check the related bugs...  I noticed this: 
http://spellchecker.mozdev.org/

Looks like they have it implemented for mail and composer...  What would it take
to add it to Browser to check form fields?
Chris: see comment 24 and bug 129704.

It looks like this is being held up by some spellchecker refactoring.

Also, look at the mozex project on MozDev, which (among other things) allows you
to use an external program to edit textareas.
Spell checking in forms would be a good thing to have for Firebird 1.0.  A nice
enhancement to have built in (and beat IE with).

Especially good fur checking bugzilla posts.  Good speling is esenteal wen
riting bugs.
Is there any way to create a bounty for this bug that everyone who wants to see
it done could chip in on?
Blocks: majorbugs
I'm waiting for spell checker for forms by a long time...

This bug report start in: 28/10/1999

Today is: 28/08/2003

Something was did since than?

Now, how it is (1.4), i have to copy the form's text, create a new mail message,
paste the text, use the spell checker, copy the checked text, than paste at the
form.

We just need to understand, that one browser is better than other because of the
good features, just it. And form spell checking is a must have, like Tabs.
Henrique Sant'Anna,

You should read this: http://bugzilla.mozilla.org/page.cgi?id=etiquette.html
I suggest that you pay special attention to sections 1.1 and 1.2.

Prog.
This would be useful even if the spellchecker only underlined mispelled words
(as many word processors do).  If that's substantially easier, it would make a
great first step.

The ability to check spelling would eliminate a lot of emberrasing mispellins
that we all see too often.  That, combined with the ability to call up an
external editor for a TEXTAREA, would pretty much put us in form-based nirvana.

(Keywords: TEXTAREA text input from spell spelling spellchecking spellchecker
rfe feature underline mispelled words.  See also Bug #23421 )
> That, combined with the ability to call up an
external editor for a TEXTAREA, would pretty much put us in form-based nirvana.

The mozex extension ( http://mozex.mozdev.org/ ) has this ability.
I've created a SourceSupport project for this bug at:
http://sourcesupport.org/?project=43

Please Donate.  Please Publicize.  If we get enough donations, hopefully someone
will fix this bug.
Thank you.
Any idea how much time / cost it would take to do this? 

It would really be a great new feature now that spellcheck is in the trunk. 
Be very cool to have :) even just an extension would be nice
Thanks to the work of Torisugari, it seems to be done!  See
http://forums.mozillazine.org/viewtopic.php?t=34799 and read the entire thread
for news, info, and download links.

Torisugari has versions available for the Mozilla Suite as well as for Firebird.
Is there an actual patch that could be tested and checked in?
Yes,Aleksey.  Go to http://forums.mozillazine.org/viewtopic.php?t=34799 and you
will find the links as you go through the messages.  I have the Mozilla Suite
Spellchecker Front End 0.3 extension installed and used it to spell check these
postings.

Torisugari has not posted the code to the Mozillazine Forums, naturally, but I
would think that he would be happy to have you review his xpi installers and the
code therein.  I have posted a note for him in the MZ Forums.  He has been quite
active there lately, and I suspect he will see it soon.
Attached patch patch 1 (obsolete) — Splinter Review
Comment on attachment 136224 [details] [diff] [review]
patch 1

Please change cmanske@netscape.com to cmanske@jivamedia.com (or e-mail him and
ask him what e-mail address he'd prefer there).

Does function Startup() have tabs in it? Please fix indentation to 2-spaces per
level.	Check throughout the function; lots of inconsistency on indenting.

curLang = "" should not be necessary in the catch.

fix this comment:  ...see bug XXXXX

In function FillSuggestedList, combine these if's:
+      if (count==0)
+      if (word.length > 0)

It seems like Replace and ReplaceAll could be one function that takes a boolean
parameter for "all"; is there some reason not to do that?

In CheckWord, the assignment to null isn't necessary since you reassign it in
the next line.

In SelectSuggestedWord, add a semicolon after: var selectedItem

In "Recheck", remove TODO comment unless you added it.

Fix the license in browserSpellCheck.xul (I assume it should be changed to
MPL).

In browserSpellCheckOverlay.xul, add your own name as a contributor?

Are there tabs in browserSpellCheckOverlay.xul?
Add a blank line to the end of that file.

ok, the above was just a high level scan at the patch.	Here are some harder
questions / issues:
 * Has this been tested with the browser's rich text editing ("Midas")?
 * Has this been tested with Composer and Mail Compose?  Do they work as they
should?
 * I have some reservations about all the new code (duplication?).  I'd prefer
to see a common spellchecker that Composer, browser, and mail all use.

On a final note, I am *THRILLED* to see someone working on this; I can't wait
to have it in my builds!  Please clean it up a little so we can land it!
Attachment #136224 - Flags: review-
For what it is worth:

I am currently doing some cleanup in the spellcheck code. With that, i was
thinking about how to fix this bug.
My idea was to create a new interface, mozIStringSpellCheck.idl, that just
spellchecks a string. The value of a html for element is just a string, so that
would work. This would also help spellchecking in chatzilla, or the subject of
the email.

I don't really like the copying of the XUL/js code. My idea was just to move it
into extensions/spellcheck, and have some |if| statements depending on what is
spellchecked.

Also, the inconsitency between checking an email (replacing inline) and a form
(text copied into a new window) is ehm, inconsistent :)

But let all this not stop you, i am just telling you my ideas :) It would be
really cool to have this working.


About your patch:

You have some inline styles, please remove them.
You seem to read prefs for the font to use, you should remove that too. Why
should the spellcheck dialog use a different font?
You can remove install.js
I didn't test the patch, but using the beta extension, I did find a few problems:

1. Enable Wrap should IMHO be the default. It makes it much easier to use the
spellchecker than having to scroll to read the context.
2. Sometimes, the highlighted word is displayed outside the textarea, requiring
the user to scroll in order to see it.
3. It seems impossible to spellcheck text selections.
4. Since there are only two options in the menu, it might be better to cancel
the menu and add two buttons instead.
5. If the menu is kept, there should be a separating line between it and the
textarea, otherwise, the word "Menu" looks like the title of the textarea (at
least when using the Modern theme)
6. The spellchecker should ideally ignore UPPERCASE and URLs.
7. "Completed spell checking" is displayed in the Misspelled Word field and is
not visible enough for users who choose to view the main textarea instead. A
message box with the same text would probably be easier to spot.

Other than these minor issues, I'm very happy with the result. Thanks!

Prog.
Shouldn't this bug be re-assigned to the torisugari_moz@yahoo.co.jp?

Prog.
I'm thrilled to see this finally coming.

I also agree that it would be wiser to have a universal spellchecker that the
browser, mail and composer all use.  It just makes more sense.

Not to mention, when I "add word", it would carry across, thunderbird, firebird,
etc.  That way I don't add my last name "Accettura" (which sadly, isn't in the
dictionary), 3 times.

To me, I would like to see the following done in general to spell check (which
applies to this:
-  Ability to select a word to spell check, rather than entire body of text
-  Ability to right click into a field in a form, and spell check (unless, just
word, then above)

More specific to this bug, I'm attaching an image, of what i would propose. 
Putting a mouse over the field, would bring up a menu, similar to the "Image
Buttons" brought up by IE over an image.  Containing some popular things (Copy,
paste, spellcheck, perhaps undo/redo?).  Do it perhaps transparent (Possible?),
would look clean, and easy to use for end users.  Hold mo

End users, look for a features to be in their face, they don't like spending 20
minutes figuring out how to use things.  Meaning, we need to put it in an easy
to find place.  A menu like above would make it cleanand simple for them.  An
option to disable may be needed.  

Anyway, that's my idea on implementation.  Would be a nice smooth way to put the
feature in the users grasp, without forcing them to look it up.

My fear is that, another option in a menu, will go unnoticed, even by some
longtime mozilla lovers.  Same with using right click.  Will get lost.  

The icons from cutemenu (http://cute.mozdev.org/index.html) might be a good icon
base to use for such an implementation.

A good question to ask, is should this bug also apply to text fields in XUL? 
Meaning every preference, extension's field gets spell checking?  Perhaps in
those cases, the menu would be off, and just use right click? 

Just thoughts, I'm sure some will disagree completely, but perhaps logic exists
in madness.  

Pathetic childlike Mockup of my minddrippings coming.
Robert,

I am a little uncertain about what your buttons would do.

I like the idea (sort of) of a checkbox that shows when your spelling is
correct, but let us be honest, the underlining method (a la Abiword or gnome
spell as previously mentioned) is the best way of determining whether you've
misspelled things.

Any underline feature/pop-up on the form field as proposed in the screenshot
should be optional and turned off by default. 

Why?

I think Firebird--in order to be the super-IE-- needs to avoid confusing people.
The underlining might be OK.. but popping up buttons isn't in my book. Again,
options are fine-- c.f Firebird Manifsto.. I actually strongly support the
implementation of underlining.. just questioning whether a browser should have
this setting by default for the Last Name field--in the first place.

--Sam
re Comment #67,
Robert J. Accettura: please file a new bug asking for a pref for a personal
dictionary path. the current code almost certainly sticks the personal
dictionary into your profile directory which makes it per profile per application.
Attached patch patch 2Splinter Review
Thanks for the reviews.
It seems that I have a lot of things to learn.
I modified those other than
wrapping replace functions and my name things.

IMHO, this bug is not depend on redesign bug 129704,
though i'm interested also in it.

>Has this been tested with Composer and Mail Compose?
No, but it's not difficult with patch 2.
Please take a look at chatzillaSpellCheckOverlay.xul.
Is it also blocking this bug?
Attachment #136224 - Attachment is obsolete: true
Comment on attachment 136722 [details] [diff] [review]
patch 2

You used a different UI then composer spellcheck. Instead of spellchecking the
original, and changing words there, you seem to copy the text into the dialog.
Is there a specific reason for that? Most app i know use the way composer does
it.
>Is there a specific reason for that?

1) Simply because it's easier, though easy come may easily go away.
2) We don't have enough API to access textarea and input, 
in cross platform way, right? 
If possible, I would like to keep away from original DOM elements, 
because a web site developer might set some event handlers ( e.g. onselection
event! ).
You might have a point on the technical issues, especially the dom event. But
maybe at least some of them _should_ fire, because content is changed?

I still think that UI wise editing the original element is better. You also
don't have to worry about wrapping and such, because the author of the web page
have taken care of that.
But if it turns out the be too hard, too ugly, or even impossible to do that,
you solution will work too.

btw, what happens when you try to spellcheck 'contenteditable' (midas)? That is
rich text. Do you copy that?
For anyone who isn't following the Mozillazine thread, new updates are available:
http://forums.mozillazine.org/viewtopic.php?t=34799

Torisugari, where would you like to discuss suggestions and issues, in the
aforementioned thread, or here in Bugzilla?

Prog.
Blocks: 227367
No longer blocks: 227367
*** Bug 236283 has been marked as a duplicate of this bug. ***
*** Bug 240260 has been marked as a duplicate of this bug. ***
QA Contact: sujay → core.spelling-checker
*** Bug 249531 has been marked as a duplicate of this bug. ***
*** Bug 256698 has been marked as a duplicate of this bug. ***
FYI, Firefox .9+ has spellchecker extension called SpellBound
(http://spellbound.sourceforge.net/)
*** Bug 257659 has been marked as a duplicate of this bug. ***
Whiteboard: See above URL for a Firefox spellcheck extension
No longer blocks: majorbugs
*** Bug 335103 has been marked as a duplicate of this bug. ***
This was implemented in bug 302050.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Are you sure about that?  Bug 302050 is Firefox specific.  This bug is targetted against core.  If SeaMonkey doesn't have this, then this bug shouldn't be resolved as is...
Most of the code is in core: content, layout, extensions/spellcheck. The UI is in toolkit, which I guess seamonkey doesn't use yet, but they can copy the file (there's only one). There are a few hooks in browser.js to make it go.

I would argue that this capability now exists in the core. Whether seamonkey uses it or not is up to them.
Filed Seamonkey specific bug 338318 as follow-up.
You need to log in before you can comment on or make changes to this bug.