Bug 16629 - [AAPI]: a (no href attribrute) MSAA: ROLE_SYSTEM_ TEXT why?
[AAPI]: a (no href attribrute) MSAA: ROLE_SYSTEM_ TEXT why?
Status: NEW
Product: HTML WG
Classification: Unclassified
Component: HTML a11y APIs (editor: Steve Faulkner, Cynthia Shelly)
unspecified
PC Windows NT
: P2 normal
: ---
Assigned To: Cynthia Shelly
HTML a11y API spec bugbot
http://lists.w3.org/Archives/Public/w...
: a11y
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-04 10:04 UTC by steve faulkner
Modified: 2013-08-16 19:16 UTC (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description steve faulkner 2012-04-04 10:04:10 UTC
alex wrote:
 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?
Comment 1 Jason Kiss 2013-03-24 01:16:52 UTC
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." [1]

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." [2]

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&nbsp;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.


[1] http://msdn.microsoft.com/en-us/library/windows/desktop/dd373608%28v=vs.85%29.aspx#ROLE_SYSTEM_LINK 
[2] http://msdn.microsoft.com/en-us/library/windows/desktop/dd373609%28v=vs.85%29.aspx#STATE_SYSTEM_LINKED
Comment 2 Jason Kiss 2013-03-24 01:20:05 UTC
Apologies for the HTML link tags. Meant to reference related bug 16761.
Comment 3 alexander surkov 2013-03-26 06:23:47 UTC
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
Comment 4 alexander surkov 2013-04-05 06:59:57 UTC
(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).

Example, 

<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.
Comment 5 alexander surkov 2013-08-16 19:16:55 UTC
IA2 was addressed in bug 12703: IA2_ROLE_TEXT_FRAME