W3C home > Mailing lists > Public > public-aria@w3.org > February 2016

Re: ACTION-1380 Proposed text

From: James Craig <jcraig@apple.com>
Date: Mon, 8 Feb 2016 00:21:20 -0800
Cc: public-aria@w3.org
Message-Id: <63510A98-B82E-4DE6-B813-0E522DDFB899@apple.com>
To: Richard Schwerdtfeger <schwer@us.ibm.com>
> The only problem with that is that PNG does not support aria and I am not aware of any PNG content mappings. 

PNG was merely a theoretical example to avoid the vector-specific language. To my knowledge, no browsers support accessible descendant PNG content. 

> SVG host language has elements that are not exposed by default unless additional attributes are applied.

I've adjusted the language a bit to hopefully make this more clear. A few more edits noted in [[backets]]...

====
When aria-hidden="true" is applied to an element, the element and all descendant [[nodes]] are removed from the accessibility tree. If aria-hidden="true" is applied to an image, the entire image is removed from the accessibility tree. 

When role="none" (or role="presentation") is applied to an element, the element's role semantics are removed, but the element's [[accessible]] descendants remain exposed to the accessibility APIs. Most images do not have descendants[[]], so the [[outcome]] of applying role="none" is that entire element is removed, as if aria-hidden="true" had been applied. When an image has descendants (e.g. <img src="example.svg"> or <svg>), that are exposed to assistive technologies as defined by the host language, applying role="none" will remove the image role semantics, but [[any otherwise accessible]] descendants will remain accessible to assistive technologies. 
====

Does that work?

James


> On Jan 21, 2016, at 9:29 AM, Richard Schwerdtfeger <schwer@us.ibm.com> wrote:
> 
> The only problem with that is that PNG does not support aria and I am not aware of any PNG content mappings. The reason I mention ARIA is that we can't mark descendant elements in PNG with role = "none" if we wanted to. 
> 
> That aside, I am fine with your text proposal with the exception that the SVG host language has elements that are not exposed by default unless additional attributes are applied. Also, we don't have a definition for "accessible descendants". One of the things I thought we wanted to get at was to tell the author that even if the descendants were exposed they would need to be able to mark them as hidden or place a role of none on them to prevent them from being exposed (based on the host language)
> 
> How about this: 
> 
> ====
> When aria-hidden="true" is applied to an element, the element and all descendant elements are removed from the accessibility tree. If aria-hidden="true" is applied to an image, the entire image is removed from the accessibility tree. 
> 
> When role="none" (or role="presentation") is applied to an element, the element's role semantics are removed, but the element's descendants remain exposed to the accessibility APIs. Most images do not have descendants elements, so the end result of applying role="none" is that entire element is removed, as if aria-hidden="true" had been applied. When an image has descendants (e.g. <img src="example.svg"> or <svg>), that are exposed to assistive technologies as defined by the host language, applying role="none" will remove the image role semantics, but the exposed descendants will remain accessible to assistive technologies. 
> ====
> 
> 
> Rich
> 
> 
> Rich Schwerdtfeger
> 
> -----James Craig <jcraig@apple.com> wrote: -----
> To: Richard Schwerdtfeger/Austin/IBM@IBMUS
> From: James Craig <jcraig@apple.com>
> Date: 01/20/2016 10:36PM
> Cc: public-aria@w3.org
> Subject: Re: ACTION-1380 Proposed text
> 
> You still don't need to distinguish raster versus vector. It's incorrect to do so because it precludes raster image formats that contain object data like the PNG example below.
> 
> How about the following text in a Note.
> 
> """
> When aria-hidden="true" is applied to an element, the element and all descendant elements are removed from the accessibility tree. If aria-hidden="true" is applied to an image, the entire image is removed from the accessibility tree. 
> 
> When role="none" (or role="presentation") is applied to an element, the element's role semantics are removed, but the element's descendants remain exposed to the accessibility APIs. Most images do not have descendants elements, so the end result of applying role="none" is that entire element is removed, as if aria-hidden="true" had been applied. When an image has accessible descendants (e.g. <img src="example.svg"> or <svg>), applying role="none" will remove the image role semantics, but the element's descendants remain exposed to the accessibility APIs. 
> """
> 
> 
>> On Jan 20, 2016, at 7:37 AM, Richard Schwerdtfeger <schwer@us.ibm.com> wrote:
>> 
>> I agree 1 is unnecessary.  
>> 
>> revised proposed text:
>> 
>> 
>> There is a distinct difference between what occurs when either role=none or role=presentation versus aria-hidden="true" is applied to a raster image versus a vector graphics drawing (SVG element). In the case of a raster image (e.g. <img src="foo.jpg") all descendants are considered presentational or having no role resulting in the both the image and any of its descendants not being exposed to the assistive technology regardless of which of these settings are applied. However, in the case of a vector graphics image (e.g. <img src="foo.svg"> or <svg>) all of the descendants are not required owned elements, by default, and may not have semantics that would indicate their being presentational or having no role. Therefore, if role="presentation" or role="none" is applied to a vector graphics drawing only the container is not exposed to the assistive technology and each of the descendant elements are exposed based on the SVG host language. If the author wants all descendant elements to be presentational the auhor may need to mark them with role "presentation" or "none". However, if aria-hidden="true" is applied to an vector graphics image the container and all its descendants are hidden from the assistive technology. 
>>  
>> be inserted before the text found in role="presentation":
>>  
>> "For any element with an explicit or inherited role of presentation, user agents MUST ignore any non-global, role-specific WAI-ARIA states and properties. However, the user agent MUST always expose global WAI-ARIA states and properties to accessibility APIs, even if an element has an explicit or inherited role of presentation."
>>   
>> 
>> Rich Schwerdtfeger
>> 
>> -----James Craig <jcraig@apple.com> wrote: -----
>> To: Richard Schwerdtfeger/Austin/IBM@IBMUS
>> From: James Craig <jcraig@apple.com>
>> Date: 01/20/2016 02:26AM
>> Cc: public-aria@w3.org
>> Subject: Re: Action-1380 Proposed text
>> 
>> It seems arbitrary to make a distinction between raster and vector here. Nothing prevents raster images from including object data. For example, Adobe Fireworks famously used the comment space of the raster PNG format to store vector and other source file data. What about ASCII art, which is neither vector nor raster? What about vector images that contain one or more raster images?
>> 
>> I think the distinction you are trying to make is… does the image have meaningful descendants or not? If so, I think there are two choices:
>> 
>> 1. Add a new role or attribute to differentiate the two types. (I don't think this is necessary.)
>> 
>> 2. Require authors to hide any presentational descendants of images. <img src="raster"> will default to having no descendants, while <img src="vector"> and <svg> will default to having descendants presumed to be meaningful. Edge cases like ASCII art may need some extra massaging by the author to hide the descendant nodes from the accessibility APIs.
>> 
>> James
>> 
>> 
>>> On Jan 19, 2016, at 10:59 AM, Richard Schwerdtfeger <schwer@us.ibm.com> wrote:
>>> 
>>> I propose that the following text:
>>>  
>>> There is a distinct difference between what occurs when either role=none or role=presentation versus aria-hidden="true" is applied to a raster image versus a vector graphics drawing (SVG element). In the case of a raster image all descendants are considered presentational or having no role resulting in the both the image and any of its descendants not being exposed to the assistive technology regardless of which of these settings are applied. However, in the case of a vector graphics image all of the descendants are not required owned elements, by default, and may not have semantics that would indicate their being presentational or having no role. Therefore, if role="presentation" or role="none" is applied to a vector graphics drawing only the container is not exposed to the assistive technology and each of the descendant elements are exposed base on SVG host language. However, if aria-hidden="true" is applied to an vector graphics image the container and all its descendants are hidden from the assistive technology. 
>>>  
>>> be inserted before the text found in role="presentation":
>>>  
>>> "For any element with an explicit or inherited role of presentation, user agents MUST ignore any non-global, role-specific WAI-ARIA states and properties. However, the user agent MUST always expose global WAI-ARIA states and properties to accessibility APIs, even if an element has an explicit or inherited role of presentation."
>>>  
>>> 
>>> Rich Schwerdtfeger
>>> 
>> 
>> 
> 
> 
Received on Monday, 8 February 2016 08:21:52 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:58:20 UTC