RE: Nested links (not related to children presentational issue in ARIA 1.1)

>>> I'd be interested in feedback from screen reader users testing the generated HTML snippet.)

Testing of http://mcc.id.au/temp/nested-links.html


Part of the  zoo, containing rather different animals. Some cages seem to be empty:

Jaws 17 with IE 11:

a) on focus with TAB: “Inner Link”, after 2nd Tab focusing inner link “Inner Link”
b) in virtual mode: “Link outer” then “link inner” then “outer”

Jaws 17 with FF 47:

a) on focus with TAB: “Outer Inner Outer Link”, after 2nd Tab focusing inner link “Inner Link”
b) in virtual mode: NOTHING

NVDA 2016.2 with IE 11:

a) on focus with TAB: “Visited Link outer Link inner outer”, after 2nd Tab focusing inner link NOTHING
b) in virtual mode: same as a)

NVDA 2016.2 with FF 47:

a) on focus with TAB: NOTHING
b) in virtual mode: same as a)

Regards
Stefan

From: Amelia Bellamy-Royds [mailto:amelia.bellamy.royds@gmail.com]
Sent: Freitag, 24. Juni 2016 05:07
To: ARIA <public-aria@w3.org>
Cc: Joseph Scheuhammer <clown@alum.mit.edu>; Marco Zehe <mzehe@mozilla.com>; Birkir Gunnarsson <birkir.gunnarsson@deque.com>; Shane McCarron <shane@spec-ops.io>; Michael Cooper <cooper@w3.org>; Richard Schwerdtfeger <richschwer@gmail.com>; Fred Esch <fesch@us.ibm.com>; White, Jason J <jjwhite@ets.org>
Subject: Re: Nested links (not related to children presentational issue in ARIA 1.1)

Thanks all for the feedback.

Some clarifications:

  *   The HTML parser does not allow nested links. All browsers when running an HTML parser will automatically close the open <a> tag when they encounter a new one.
  *   However, all browsers tested will render nested HTML links consistently if you create the nesting structure with script.  This is the demo Cameron McCormack made of that behavior: http://mcc.id.au/temp/nested-links.html

(I'd be interested in feedback from screen reader users testing the generated HTML snippet.)
  *   When parsing SVG (with XML or HTML parser), close tags are never inserted because of disallowed children elements.  So if your markup has nested <a> elements, your DOM has nested <a> elements, too.
  *   Many browsers & SVG tools currently support nested links.  Other browsers (Blink & WebKit) follow a general SVG rule that elements that are in invalid places (based on the element content models in the spec) should not render; they exclude all the content (shapes and text) that is inside the nested link.
Demo of the SVG case: http://output.jsbin.com/quvuyaxace/1

(Again, feedback on usability in current AT would be helpful. Firefox and Edge render the nested links without any obvious problems for visual mouse and keyboard users.)
I don't think the "do not render" approach used by Blink & WebKit is very robust or helpful to end-users.  We would want to change that part of the spec one way or another.

~Amelia

Received on Friday, 24 June 2016 07:15:13 UTC