Why does the button role have children presentational="true"?

Oh wise ones.

I have a question on the "children presentational" rule for the button role.

Looking at the ARIA 1.1 spec, I notice a few elements that have their
"children presentational" set to true.
The definition from same spec, is: "The DOM descendants are
presentational. User agents SHOULD NOT expose descendants of this
element through the platform accessibility API."
For most of the roles specified )image, math, progressbar, slider,
scrollbar, separator) this makes perfect sense.
But to me  the button role stands out.




The HTML button tag allows descendants:
The accessible name for this construct:
<button>New Years Greetings to
<span class="IcelandFlag">Iceland</span>
</button>
is "New Year's Greetings to Iceland".
But if we use an ARIA button.

<span role="button">New Year's Greetings to
<span class="IcelandFlag">Iceland</span>
</span>
the recommendation, as I understand it either says to expose nothing
as the accessible name or only the text "New Years Greetings to".

My 2 questions>
1. Would the text content of the element count as its dom descendant?
(in the example above this would be the text "new year's greetings to"?
2. Why does the button role have this rule while the html button
element does not, and the link role does not either?

Most frequently ARIA buttons are created by adding the button role to
an anchor tag, and often those include spans or other elements.
As far as I have tested, this always works with assistive technologies.
So either I am not understanding the spec (which happens), or there is
a mismatch in how a.t. handles this and the spec, and I err on the
side of a.t. interpretation.
Thanks and happy new year to all!
-Birkir

Received on Thursday, 31 December 2015 15:05:39 UTC