Closed Bug 215024 Opened 21 years ago Closed 13 years ago

Conflict between FAYT (Find As You Type) and javascript (key events)

Categories

(SeaMonkey :: Find In Page, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 276295

People

(Reporter: vincent-moz, Unassigned)

References

(Depends on 1 open bug, )

Details

(Keywords: helpwanted)

User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.5b) Gecko/20030803 Build Identifier: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.5b) Gecko/20030803 Characters typed during a type ahead find are also seen as key events by javascript; this may lead to unwanted behavior. Reproducible: Always Steps to Reproduce: 1. Open the above URL. 2. Type "/r" (to search for a word containing a "r"). Actual Results: As soon as "r" is typed, the web page http://citeseer.nj.nec.com/nrelated/1719612/353735 is opened, because the original web page has a JS function that opens web pages on some key presses (this is what I guess after looking at the source). Expected Results: As typing "r" occurred in a FAYT context, this event shouldn't have been passed to javascript code, i.e. Mozilla should behave as if there were no JS.
Confirming on 2003080304 WinXP.
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Linux → All
Hardware: Macintosh → All
You have to call event.preventDefault() on key events you don't want FAYT to get. See the testcase attachment in bug 167921 *** This bug has been marked as a duplicate of 167921 ***
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
Reopening: I want the opposite. I complain because a web page is stealing keypresses for FAYT. Mozilla shouldn't allow this.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
(In reply to comment #3) > Reopening: I want the opposite. I complain because a web page is stealing > keypresses for FAYT. Mozilla shouldn't allow this. Yes it should. Web apps need to be able to decide what happens to their keystrokes. We're just following the DOM by support event.preventDefault(). Reclosing.
Status: REOPENED → RESOLVED
Closed: 21 years ago20 years ago
Resolution: --- → FIXED
No, look at what Mozilla does. When the user types '/', FAYT operation is entered. If the user types '/a', Mozilla searches for 'a' (the first 'a' is selected). Here, nothing else occurs. If the user types '/r', the first 'r' is selected, but the 'r' is also used by Javascript. Using the 'r' for two different operations at the same time is definitely a bug. If the user wants the web application to process the 'r', he can just type 'r', not '/r'. (Now, there should be an option to prevent web applications from getting key events, and also a way to indicate that the default key events may no longer be taken into account, i.e. the user needs to know what will happen when he does something, but this is another problem.)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Perhaps the fix is something like: Don't let the web page see keysrokes once find as you type has been started. If they want to use preventDefault() to keep Find As You Type from starting in the first place, that's okay. But if thy're going to let / or ' or anything else start FAYT, then FAYT would keep going. This might be hard to fix -- we have to see the key events before they do, once FAYT has begun. However, we only want to look at the keypress after they do if we're determining whether we should start FAYT.
I agree, and yes, this would need to interpret key presses at two different places, depending on the context. BTW, an improvement of the event processing could have other benefits (I've noticed some race conditions in the focus change, particularly annoying when the machine is very loaded).
I would approve of a fix that did what comment 6 said, as long as we were very careful about regressions. FAYT is fairly stable these days.
Keywords: helpwanted
Still seeing this in 20041013, on a similar citeseer page. Strangely, CTRL-F works fine, even though it brings up the same search bar working in almost the same way in this version of Firefox.
User comment: I'd like this to be an option. It would be great if I could disable FAYT for gmail (so that 'C' does compose new mail etc). But I can see that in other cases, FAYT should take precedence.
Steve, for what you want, you can already disable FAYT when you start typing; then it will start only after some hotkey. See http://www.mozilla.org/access/type-ahead/ http://kb.mozillazine.org/Accessibility.typeaheadfind
i'm not actually volunteering, but i agree w/ the reporter, and pages that do this (gmail) bother me. my choices are either turning off their feature (as i did for gmail) or not using the pages. (i might actually do this, i need to talk to people and figure out how it might be done.) bz: should this be as simple as changing the order of event dispatch so that taf is earlier (i.e. before content)?
QA Contact: bugzilla → timeless
Blocks: 254454
taf should generally be after content. As in, content should be able to prevent taf.
Product: Core → SeaMonkey
Assignee: aaronleventhal → nobody
QA Contact: timeless → keyboard.fayt
Status: REOPENED → NEW
No longer blocks: 254454
Possible duplicate of/related to Bug 276295.
> Possible duplicate of/related to Bug 276295. Probably. Thanks for the heads up.
Status: NEW → RESOLVED
Closed: 20 years ago13 years ago
Depends on: 276295
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.