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



16 years ago
4 years ago


(Reporter: vincent-moz, Unassigned)


(Depends on: 1 bug, {helpwanted})


Firefox Tracking Flags

(Not tracked)





16 years ago
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 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.

Comment 1

16 years ago
Confirming on 2003080304 WinXP.
Ever confirmed: true
OS: Linux → All
Hardware: Macintosh → All

Comment 2

16 years ago
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 ***
Last Resolved: 16 years ago
Resolution: --- → DUPLICATE

Comment 3

16 years ago
Reopening: I want the opposite. I complain because a web page is stealing
keypresses for FAYT. Mozilla shouldn't allow this.
Resolution: DUPLICATE → ---

Comment 4

15 years ago
(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().

Last Resolved: 16 years ago15 years ago
Resolution: --- → FIXED

Comment 5

15 years ago
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.)
Resolution: FIXED → ---

Comment 6

15 years ago
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.


Comment 7

15 years ago
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).

Comment 8

15 years ago
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

Comment 9

14 years ago
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.

Comment 10

13 years ago
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.

Comment 11

13 years ago
Steve, for what you want, you can already disable FAYT when you start typing; then it will start only after some hotkey. See

Comment 12

13 years ago
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


13 years ago
Blocks: 254454
taf should generally be after content.  As in, content should be able to prevent taf.


11 years ago
Product: Core → SeaMonkey
Assignee: aaronleventhal → nobody
QA Contact: timeless → keyboard.fayt
No longer blocks: 254454

Comment 14

7 years ago
Possible duplicate of/related to Bug 276295.

Comment 15

7 years ago
> Possible duplicate of/related to Bug 276295.
Probably. Thanks for the heads up.
Last Resolved: 15 years ago7 years ago
Depends on: 276295
Resolution: --- → DUPLICATE
Duplicate of bug: 276295
You need to log in before you can comment on or make changes to this bug.