Bugzilla – Bug 16629
[AAPI]: a (no href attribrute) MSAA: ROLE_SYSTEM_ TEXT why?
Last modified: 2013-08-16 19:16:55 UTC
a (no href attribrute) MSAA: ROLE_SYSTEM_ TEXT
Firefox exposes <a> as ROLE_SYSTEM_LINK always. If no @href then no
STATE_LINKED. Any particular reason to expose it as SYSTEM_TEXT?
I don't know the reasoning behind Internet Explorer exposing <a> elements as ROLE_SYSTEM_TEXT instead of ROLE_SYSTEM_LINK, but it doesn't seem necessarily inappropriate or inconsistent based on the definition of ROLE_SYSTEM_LINK: "The object represents a link to something else. This object might look like text or a graphic, but it acts like a button." 
However, IE also sets STATE_SYSTEM_LINKED whether or not the <a> element has an @href, which doesn't make sense to me based on the definition of STATE_SYSTEM_LINKED: "Indicates that the object is formatted as a hyperlink. The object's role will usually be ROLE_SYSTEM_TEXT." 
I agree that ROLE_SYSTEM_LINK seems to make more sense where there is an @href, but not when there is no @href since the object doesn't "represent a link to something else." What is Firefox's argument for keeping ROLE_SYSTEM_LINK when there is no @href?
The use of STATE_SYSTEM_LINKED on <a> elements without an @href also doesn't follow for me: Simple named anchors with no @href are not normally formatted, nor do they act, as hyperlinks.
Note that <area> elements in IE use ROLE_SYSTEM_LINK. They also have STATE_SYSTEM_LINKED, again whether or not they have an @href. Related bug: <a href="show_bug.cgi?id=16761">Bug 16761</a>.
I'd suggest the folllowing mappings:
<a> with @href exposed as ROLE_SYSTEM_LINK with STATE_SYSTEM_LINKED.
<a> and <area> (with no @href) exposed as ROLE_SYSTEM_TEXT.
Apologies for the HTML link tags. Meant to reference related bug 16761.
It sounds reasonable. If IE does it then it should be safe for Firefox do the same. I filed FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=854796
(In reply to comment #3)
> It sounds reasonable. If IE does it then it should be safe for Firefox do
> the same. I filed FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=854796
SYSTEM_TEXT doesn't work well because that means system_text accessible can be nested which is not expected by AT (see Jamie's answer in Firefox bug above).
<a>text leaf</a> will result into
system_text - html:a
system_text - text node
Note, since html:a can contain anything then it means system_text can contain anything. Firefox uses IA2_ROLE_TEXT_FRAME for text containers, SYSTEM_TEXT for text leafs.
IA2 was addressed in bug 12703: IA2_ROLE_TEXT_FRAME