Closed Bug 17605 Opened 25 years ago Closed 24 years ago

[TESTCASE] As without HREFs included in tab order, but shouldn't be

Categories

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

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: cpratt, Assigned: pollmann)

Details

(Whiteboard: fix in hand)

Attachments

(1 file)

Build ID: 1999102908
Platform: Windows NT

To reproduce:
- Open the attached test case in the browser
- Click into the text input control
- Press Tab

Result: "SECTION B - etc." receives visual focus

Expected result: As "SECTION B" is not actually a hyperlink, but an anchor, it
should not receive focus in tab orders (because you can't 'do' anything with
it). This is the behavior in Nav 4.x and IE 5.x.
Assignee: rickg → pollmann
Eric -- do you own tab ordering?
Status: NEW → ASSIGNED
Component: Parser → HTML Form Controls
Target Milestone: M12
It's the tab manager.  I'll take a look.
After careful consideration, I've decided that I probably won't get this bug in
for M12.  Currently I have nearly 50 bugs scheduled for M13, so there is a
possibility that this bug may need to be moved out farther still.
Summary: As without HREFs included in tab order, but shouldn't be → [TESTCASE] As without HREFs included in tab order, but shouldn't be
Target Milestone: M13 → M15
Moving to M15.
Moving out to M17.
Target Milestone: M15 → M17
I have a fix for this in my tree:

nsEventStateManager::GetNextTabbableContent
...
else if(nsHTMLAtoms::a==tag.get()) {
  nsCOMPtr<nsIDOMHTMLAnchorElement>nextAnchor(do_QueryInterface(child));
  if (nextAnchor)
    nextAnchor->GetTabIndex(&tabIndex);
    nsAutoString href;
    nextAnchor->GetHref(href);
    if (!href.Length()) {
      disabled = PR_TRUE; // Don't tab unless href, bug 17605
    } else {
      disabled = PR_FALSE;
    }
  }
...

Tom, can you code review this?
Component: HTML Form Controls → Event Handling
Whiteboard: fix in hand
Target Milestone: M17 → M16
Oops, sorry, typo:

nsEventStateManager::GetNextTabbableContent
...
else if(nsHTMLAtoms::a==tag.get()) {
  nsCOMPtr<nsIDOMHTMLAnchorElement>nextAnchor(do_QueryInterface(child));
  if (nextAnchor)
    nextAnchor->GetTabIndex(&tabIndex);
    nsAutoString href;
    nextAnchor->GetAttribute("href", href);
    if (!href.Length()) {
      disabled = PR_TRUE; // Don't tab unless href, bug 17605
    } else {
      disabled = PR_FALSE;
    }
  }
...

Tom, can you code review this updated fix?  Thanks!
With scc's string changes, the line that changed above changes to this now:

nextAnchor->GetAttribute(NS_ConvertASCIItoUCS2("href"), href);
Fix checked in.  To verify, see above test case.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Mass update:  changing qacontact to ckritzer@netscape.com
QA Contact: janc → ckritzer
Updating QA Contact.
QA Contact: ckritzer → lorca
QA Contact: lorca → gerardok
Reassigning QA Contact for all open and unverified bugs previously under Lorca's
care to Gerardo as per phone conversation this morning.
QA contact updated
QA Contact: gerardok → madhur
verified on build 2001-08-06-trunk
Status: RESOLVED → VERIFIED
Component: Event Handling → 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: