Closed Bug 133874 Opened 22 years ago Closed 18 years ago

unfocusing a link should remove url from status bar

Categories

(Core :: DOM: UI Events & Focus Handling, defect)

x86
Windows 98
defect
Not set
minor

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: pkasting)

References

Details

(Keywords: helpwanted)

Attachments

(2 files, 1 obsolete file)

Steps to reproduce:
1. Go to http://www.google.com/.
2. Tab to "Images" (a link to http://www.google.com/imghp?hl=en)
3. Shift-tab. (Focuses the page)
4. Shift-tab. (Focuses the URL bar)

Result: at 3 and 4, the status bar still shows http://www.google.com/imghp?hl=en.

Expected: show "Done (0.33 secs)" or nothing.

This also happens when tabbing from a link to a form element, such as the Google
search textbox.
Related to this bug, onfocus and onblur do not work correctly:
<a ... onfocus="window.status='string';return false"
       onblur="window.status='';return false">
Often nothing is done, after pressing tab key you can see
only the URL of the previuos link in the status bar. It seems
that onfocus works only in the case that the statusbar is empty
(and no link was (previously) focused).

I propose to change the severity to normal, because onfocus
and onblur are the alternative attributes to onmouseover and
onmouseout in case of using the keyboard. The correct working
is necessary for web accessibilty reasons for handicapped
persons.

For a solution, maybe see also bug 38380 (css a:hover ignored
on link with javascript "onMouseover" and "return true;")
Attached patch patch (obsolete) — Splinter Review
This fixes the bug, but it makes "Document: Done" appear for a split-second if
you tab from one link to another (at least in Mozilla+Modern).	That already
happens if you move the mouse between two adjacent links, but it's not as much
of a problem with the mouse because adjacent links are rare and because it's
hard to look at the status bar while moving the mouse from link to another. 
I'll post a testcase with two adjacent links so other people can see what the
flicker looks like without applying the patch.
The flicker is almost undetectable with this morning's nightly on my newish
Win2k computer.  It's easy to see in a debug build.
*** Bug 160071 has been marked as a duplicate of this bug. ***
-> jesse
Assignee: aaronl → jruderman
*** Bug 245239 has been marked as a duplicate of this bug. ***
Assignee: jruderman → aaronleventhal
QA Contact: bugzilla
Keywords: helpwanted
*** Bug 269900 has been marked as a duplicate of this bug. ***
*** Bug 256241 has been marked as a duplicate of this bug. ***
*** Bug 342586 has been marked as a duplicate of this bug. ***
Attached patch patch v1Splinter Review
This is basically the same patch as Jesse's, just 4 years later.  I no longer see any flicker on mouse movement _or_ tabbing with his testcase.
Assignee: aaronleventhal → pkasting
Attachment #93350 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #230065 - Flags: superreview?(bugmail)
Attachment #230065 - Flags: review?(bugmail)
Note that the proposed patch still doesn't work when script refocuses during a focus event. smaug, got any ideas as to how to fix that case?
I think in NS_FOCUS_CONTENT case there should be a check like this:
(ESM->GetFocusedContent(...) == nsnull || ESM->GetFocusedContent(...) == this)
and only trigger link in that case.
Comment on attachment 230065 [details] [diff] [review]
patch v1

Moving this over to smaug since he's the expert on this.
Attachment #230065 - Flags: review?(bugmail) → review?(smaug)
Comment on attachment 230065 [details] [diff] [review]
patch v1

wrong smaug :)
Attachment #230065 - Flags: review?(smaug) → review?(Olli.Pettay)
Comment on attachment 230065 [details] [diff] [review]
patch v1

This should be ok, but please file a new bug for focus event handling or leave this bug open to fix that too.
Attachment #230065 - Flags: review?(Olli.Pettay) → review+
Filed followup bug 346208 for the script refocus issue (which I don't really understand, so the bug's kinda vague).
Comment on attachment 230065 [details] [diff] [review]
patch v1

>       case NS_MOUSE_EXIT_SYNTH:
>-      {
>         aVisitor.mEventStatus = nsEventStatus_eConsumeNoDefault;
>+      case NS_BLUR_CONTENT:
>         rv = LeaveLink(aVisitor.mPresContext);
>-      }
>       break;

I really dislike fallthroughs in switch statements, especially in non-trivial code like this. The chance of bugs in the future when someone changes this code is very big. Please just duplicate the assignment and use proper breaks.

sr=sicking with that.
Attachment #230065 - Flags: superreview?(bugmail) → superreview+
Fixed on trunk with the change from comment 17.

mozilla/content/html/content/src/nsGenericHTMLElement.cpp 1.665
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Component: Keyboard: Navigation → User events and focus handling
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: