Re: Conflicting inclusion/exclusion criteria for elements in the accessibility tree (Was: Re: [ARIA] Agenda: March 3, 2016 WAI-ARIA Working Group)

One undesirable aspect for authors of the steps Amelia has - is the last
part of step 4 (OR is focusable but not in the current tab order (e.g., a
tabindex="-1")is not in step 2. I can see making the presence of a tabindex
a factor in inclusion in the accessibility tree, but not the value of the
tabindex. As it is, it sounds like some elements will be always be included
in the accessibility tree regardless of tabindex value and others will be
included/excluded based on the value of a tabindex. If this is true, is
there a table that explains which category an element falls in? Having rule
3 between 2 and 4 makes things even less predictable for authors.



  2. Else, if element is in the current active tab order,
>     OR is identified as the aria-activedescendent of another element
>     that is in the current tab order, INCLUDE
>  3. Else, if element has aria-hidden="true" (on self or ancestor),
>     OR is hidden according to the host language semantics and does not
>     have aria-hidden="false" to override, EXCLUDE
>  4. Else, if element has other global ARIA attributes,
>     OR a computed role (by default or as set by the author) other than
>     none/presentation,
>     OR is referenced by an ARIA relationship of another (rendered and
>     not hidden) element,
>     OR is focusable but not in the current tab order (e.g., a
>     tabindex="-1"), INCLUDE

                                                              
     Regards,                                                 
                                                              
    Fred Esch                                                 
 Watson, IBM, W3C                                             
  Accessibility                                               
                                                              
 IBM Watson       Watson Release Management and Quality       
                                                              






From:	Joseph Scheuhammer <clown@alum.mit.edu>
To:	Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>, Fred
            Esch/Arlington/IBM@IBMUS
Cc:	ARIA Working Group <public-aria@w3.org>, Richard Schwerdtfeger
            <richschwer@gmail.com>
Date:	03/14/2016 04:19 PM
Subject:	Re: Conflicting inclusion/exclusion criteria for elements in
            the  accessibility tree (Was: Re: [ARIA] Agenda: March 3, 2016
            WAI-ARIA Working  Group)



Thanks Amelia, you raise a number of good points.  My comments are inline.

On 2016-03-05 12:48 AM, Amelia Bellamy-Royds wrote:
> I have to agree with Joseph's concerns.
>
> This isn't a matter of whether author's should be able to mark
> presentational elements as presentation.  It's a question of how user
> agents and ATs should behave when the information provided by the
> author is inconsistent.  In that case, I would always argue for the
> user agent to serve the user, presenting as much information as possible.
>
> Interactive elements need to be in the accessibility tree. If not,
> assistive technologies cannot effectively work as enhancements to the
> underlying browser interface, with input and output working
> independently from the DOM.  If an author places
> role="none"/"presentation" on an interactive element, that would be an
> author error and a robust approach would be to treat it as role unknown.

What user agents generally do in this case is ignore the role="none",
and fall back on the role implied by the element itself.  An example:
If the markup is '<a role="none" href="somewhere.com">', then the AAPI
role is "link".  Still, there may be cases where it's difficult to find
a meaningful implicit role.  I will investigate.  However, I don't
believe that user agents treat it as an unknown role, or, if they do,
it's only in rare cases.  The main reason is that even where AAPIs
provide for an "unknown role", that's not very useful to an AT.

>
> The behavior should be the same when an element is given ARIA
> attributes but either explicitly or by default has a role of none.
> Treat it as a generic object, unknown role or no specific role, but
> ensure that the information that /was/ provided is available to the
> user.  It can still be reported as an authoring error in a validation
> tool, but we need a useful behavior for user agents.
>
> The examples Fred provided, of wanting to have grouping elements that
> are transparent to assistive tech, are never something you would want
> to toggle on or off by changing a role.  (And roles should never be
> used to toggle state, anyway.)  I can see no good reason why someone
> would provide aria-label or other ARIA attributes on an element that
> should be ignored.  The logical assumption is that the author did not
> understand the normal impact of role="none".
>
> aria-hidden, in contrast, /can/ be toggled.  It therefore makes sense
> that aria-hidden should take precedence over aria-label: an author
> should not have to remove all the ARIA attributes in order to
> temporarily hide some content. However, if the author does not also
> take care to ensure that the element cannot receive keyboard focus, we
> still have an inconsistent state that the user agent needs to respond
> to: If the allegedly hidden content receives focus, the user needs to
> know where they are.
>
> So I would suggest the following series of priorities for the Core-AAM
> guidelines on whether to include an element in the accessibility tree:
>
>  1. If element is not rendered (and therefore cannot receive focus)
>     EXCLUDE
>  2. Else, if element is in the current active tab order,
>     OR is identified as the aria-activedescendent of another element
>     that is in the current tab order, INCLUDE
>  3. Else, if element has aria-hidden="true" (on self or ancestor),
>     OR is hidden according to the host language semantics and does not
>     have aria-hidden="false" to override, EXCLUDE
>  4. Else, if element has other global ARIA attributes,
>     OR a computed role (by default or as set by the author) other than
>     none/presentation,
>     OR is referenced by an ARIA relationship of another (rendered and
>     not hidden) element,
>     OR is focusable but not in the current tab order (e.g., a
>     tabindex="-1"), INCLUDE
>  5. Else, if element has an author-supplied role of none/presentation,
>     EXCLUDE
>  6. Otherwise, INCLUDE or EXCLUDE according to host language semantics
>

I *think* this is right, although I want to mull it over some just in
case I can think of a counter example.  If it is right, then it says the
same thing as the Core-AAM does, although in a different way -- the
core-aam has separate sections for exclusion and inclusion, and it's not
immediately clear how the two sections work together.

> Host languages and/or their mapping specs would therefore need to
> clearly define:
>
>   * Which elements are not rendered at all (and are therefore also
>     neither perceivable nor interactive, and cannot be "revealed" with
>     aria-hidden="false")
>   * Which elements are in the current active tab order (factoring in
>     features such as "inert" subtrees in HTML 5.1), and which other
>     elements are focusable
>   * Which elements are hidden (not perceivable/interactive and should
>     be treated as aria-hidden unless specifically over-ridden)
>   * Default roles for each element type
>   * Any language-specific rules for including or excluding elements
>     (for many SVG elements, this would be whether or not they have an
>     associated <title> or <desc>; for HTML, it would include things
>     like <img alt="" />)
>
>
> A final sticky issue, however, is what to do about other events.
> Unlike keyboard focus, there isn't always a clear association between
> an event and the semantically relevant element.  Event listeners can
> be added once to a parent element to collect events from many child
> elements; without examining the script, you don't know whether the
> action distinguishes between the individual element targets.  The ARIA
> event mapping guide requires accessibility API events to be fired for
> changes to text content, but that doesn't mean every span needs to
> watch for text mutations: these can be reported by the nearest
> ancestor element that is included in the accessibility tree.
>
> The inclusion criteria "Elements that may fire an accessibility API
> event" is therefore problematic.  Whether or not an element may fire
> an accessibility API event depends on whether or not it is included in
> the accessibility tree. Looking through the accessibility API event
> list [1], I think most of the events would either be covered by the
> test for a valid role, or could be safely bubbled up to the nearest
> ancestor in the accessibility tree. I would therefore remove that
> inclusion criteria altogether.

First, whether an element might fire an accessibility event can be
captured, in part, by its role, as you allude to.  There is a basic
abstract "widget" role in the ARIA taxonomy, which is defined as "an
interactive component...".  There are numerous roles that ultimately
subclass the widget role, including gridcell, slider, checkbox, menu,
and others.  Any of the roles in this branch of the taxonomy potentially
fire accessibility events.  Hence, any element that has a widget role,
either explicitly or implicitly, can cause an accessibility event, and
therefore has an associated accessible object.

Secondly, as you noted, there is a section on AAPI events [1a]. That
section includes a table documenting the relationship between various
aria-* states and properties and AAPI events.  See [2], starting with
aria-activedescendant.  The left most column of the table is a list of
aria-* attributes.  The implication is that if an element has one of
those aria-* attributes, then it can cause an accessibility event.
Using aria-busy as an example:  If an element has aria-busy specified
for it, it can change between its two values (true and false), and
thereby cause an "aria-busy-changed' event in the accessibility API.
The same logic applies to the other aria-* attributes listed in the
table.  The bottom line is that the presence of any of these aria-*
attributes entails that the element can cause an accessibility event.
Hence, the element has an accessible object in the accessibility tree.

Thirdly, live regions are potential event sources.  Any element with an
aria-live attribute can cause an event.

Fourth, the proposed aria-keyshortcuts attribute documents what the
author has provided by way of keyboard activation of the element. That
entails that the element handles key events, which will have associated
key events in the AAPI.

I'm not sure if that covers all the cases, but perhaps it's the lion's
share.  In any case, there are a number of ways to determine if an
element can cause an accessibility event, and, therefore, needs an
accessible object in the accessibility tree, if not already present.

>
>
> I'm going to be cleaning up other parts of the SVG-AAM this weekend,
> but I'll have to hold off making too many changes on these sections
> until there is a group resolution on how to proceed for the Core-AAM.
>
> ~Amelia
>
> [1]: https://www.w3.org/TR/wai-aria-implementation/#mapping_events

[1a] https://www.w3.org/TR/core-aam-1.1/#mapping_events
[2] https://www.w3.org/TR/core-aam-1.1/#event-aria-activedescendant

>
>
>
>
>
> On 4 March 2016 at 10:43, Fred Esch <fesch@us.ibm.com
> <mailto:fesch@us.ibm.com>> wrote:
>
>     Joseph,
>
>     For SVG it is imperative that an author be able to mark an element
>     with the role none or presentation and know that the element will
>     not appear in the accessibility tree. SVG is too messy to force
>     authors and authoring tools to work through anything but the
>     simplest rule.
>
>     Case 1: A group element is only present in the SVG to pass along
>     common attributes to their children. For instance you may group
>     text elements for labeling items around a circle, by their anchor
>     location. This group element has no semantic meaning. This is a
>     common use for group elements as it makes the SVG smaller and
>     makes it easier to edit reused styles. This group element should
>     not be included in the accessibility tree.
>
>     Case 2: A group element has semantic meaning and the parent/child
>     relationship is significant. An example, would be a group element
>     representing a /stack/ in a /stacked/ bar chart. The children of
>     the /stack/ group element are the individual bars that make up the
>     stack and the /stack/ group element may contain /stack/ level
>     information, for example the total value (height) of the /stack/.
>     A good chart navigation tool would let a user visit the /stack/
>     and the user could either visit the individual bars in the /stack/
>     or move to another /stack/. Without using /stack/ level objects in
>     the accessibility tree the concept of a /stacked/ chart would be
>     lost. This group element should appear in the accessibility tree.
>
>     Programmatically, both Case 1 and Case 2 group elements may look
>     similar. Authoring tools (few developer hand edit SVG) need to
>     provide a straight forward way to disallow elements from being in
>     the accessibility tree. Authors need a straight forward way of to
>     disallow elements from being in the accessibility tree. Without an
>     author friendly way of identifying case 1 from case 2 the
>     underlying concept of the graphic can be lost.
>
>     The SVG accessibility task force decided that using a role of none
>     or presentation was the golden hammer that developers and
>     authoring tools need to exclude elements from the accessibility
>     tree. Amelia is add the changes in. If we need to change the ARIA
>     spec lets change it.
>
>
>     Regards,
>
>     Fred Esch
>     Watson, IBM, W3C Accessibility
>     IBM Watson 		 Watson Release Management and Quality
>
>
>
>     Inactive hide details for Joseph Scheuhammer ---03/03/2016
>     10:57:00 AM---On 2016-03-02 10:07 PM, Amelia Bellamy-Royds wrote:
>     >Joseph Scheuhammer ---03/03/2016 10:57:00 AM---On 2016-03-02
>     10:07 PM, Amelia Bellamy-Royds wrote: >
>
>     From: Joseph Scheuhammer <clown@alum.mit.edu>
>     To: Amelia Bellamy-Royds <amelia.bellamy.royds@gmail.com>, Richard
>     Schwerdtfeger <richschwer@gmail.com <mailto:richschwer@gmail.com>>
>     Cc: ARIA Working Group <public-aria@w3.org>
>     Date: 03/03/2016 10:57 AM
>     Subject: Re: [ARIA] Agenda: March 3, 2016 WAI-ARIA Working Group
>
------------------------------------------------------------------------
>
>
>
>     On 2016-03-02 10:07 PM, Amelia Bellamy-Royds wrote:
>     >
>     > /... That said/, I would like it to be more clear. I think the
>     easiest
>     > change would be to modify the bullet point (in section 5.1.2 of the
>     > Core-AAM) that currently says:
>     >
>     >       * Elements that have a global WAI-ARIA attribute but do
>     not have
>     >         aria-hidden="true". (See Excluding Elements in the
>     >         Accessibility Tree for additional guidance on aria-hidden.)
>     >
>     > To instead say
>     >
>     >       * Elements that have a global WAI-ARIA attribute but do
>     not have
>     >         aria-hidden="true" or a mapped role of presentation or
none.
>     >         (See Excluding Elements in the Accessibility Tree for
>     >         additional guidance on aria-hidden and presentational
>     roles.)
>     >
>
>     I don't believe that is consistent with the specification of the
>     presentation role.  Either that, or the specification needs to
change.
>
>     I filed ISSUE-708 about this in Mar 2015 [1]. There have been
>     discussions at the AAPI teleconferences, and we have been approaching
>     agreement on changes to the core-aam inclusion rules. Here's a
>     summary:
>
>     1. Using role="presentation" on an element that is interactive is an
>     author error, and the role will be ignored.  Here, "interactive"
>     means
>     any of (1) the element is focusable, or (2) can cause an AAPI event
>     [2].  The reason that presentation is ignored in these cases is
>     that the
>     presentation role will stop neither a DOM event nor the corresponding
>     AAPI event from occurring, and the event will have an associated
>     source/target. That is, there will be an accessible object in the
>     a11y
>     tree as the target of the event.
>
>     The ARIA specification for role="presentation" at least documents the
>     focusable case:
>     "If an element with a role of presentation is focusable, user agents
>     MUST ignore the normal effect of the role and expose the element with
>     implicit native semantics, in order to ensure that the element is
>     both
>     understandable and operable" [3].
>
>     2. Using role="presentation" in conjunction with a global aria
>     property
>     is also an author error.  The role says that the element has no
>     meaning,
>     whereas the aria-* says that it does.   In this case, the ARIA
>     specification states:
>     " ...the user agent MUST always expose global WAI-ARIAstates and
>     properties to accessibility APIs, even if an element has an
>     explicit or
>     inherited role of presentation" [3].||||||
>
>     In summary, the core-aam inclusion rules need changes, but those
>     changes
>     must be in accordance with the ARIA spec.  If it's necessary that
>     there
>     are cases where role="presentation" *always* excludes an element from
>     the accessibility tree, then the ARIA specification *itself* must be
>     modified.
>
>
>     [1] https://www.w3.org/WAI/ARIA/track/issues/708
>     [2]
>
http://w3c.github.io/aria/core-aam/core-aam.html#mapping_events_state-change

>     [3] http://w3c.github.io/aria/aria/aria.html#presentation
>
>     On 2016-03-02 10:31 PM, Amelia Bellamy-Royds wrote:
>     > If there's time, I'd appreciate the group taking a look at GitHub
>     > Issue #136, on the interaction of role=none/presentation and other
>     > global ARIA attributes. Joanmarie filed the issue when trying to
>     > implement SVG-AAM, but it really stems from the Core mapping spec.
>     >
>     > https://github.com/w3c/aria/issues/136
>     >
>     > I'd like to confirm that the interpretation we're taking for
>     SVG-AAM
>     > matches how others think Core-AAM should be interpreted. And it
>     would
>     > be nice to get clarified language into both specs in time for
>     > publication of the new drafts next week.
>     >
>     > ~Amelia
>     >
>


--
;;;;joseph.

'Die Wahrheit ist Irgendwo da Draußen. Wieder.'
                  - C. Carter -





--1__
BBF5E4DFD55EE58f9e8a93df938690918c0ABBF5E4DFD55EE5
Content-Transfer-Encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body><p>One undesirable aspect for authors of the steps Amelia has - is the last part of step 4 <i>(</i><tt><i>OR is focusable but not in the current tab order (e.g., a tabindex=&quot;-1&quot;)</i></tt>is not in step 2. I can see making the<b> presence</b> of a tabindex a factor in inclusion in the accessibility tree, but not the <b><i>value</i></b> of the tabindex. As it is, it sounds like some elements will be always be included in the accessibility tree regardless of tabindex <b><i>value</i></b> and others will be included/excluded based on the <b><i>value</i></b> of a tabindex. If this is true, is there a table that explains which category an element falls in? Having rule 3 between 2 and 4 makes things even less predictable for authors. <br><br><br><br><tt>&nbsp; 2. Else, if element is in the current active tab order,<br>&gt; &nbsp; &nbsp; OR is identified as the aria-activedescendent of another element<br>&gt; &nbsp; &nbsp; that is in the current tab order, INCLUDE<br>&gt; &nbsp;3. Else, if element has aria-hidden=&quot;true&quot; (on self or ancestor),<br>&gt; &nbsp; &nbsp; OR is hidden according to the host language semantics and does not<br>&gt; &nbsp; &nbsp; have aria-hidden=&quot;false&quot; to override, EXCLUDE<br>&gt; &nbsp;4. Else, if element has other global ARIA attributes,<br>&gt; &nbsp; &nbsp; OR a computed role (by default or as set by the author) other than<br>&gt; &nbsp; &nbsp; none/presentation,<br>&gt; &nbsp; &nbsp; OR is referenced by an ARIA relationship of another (rendered and<br>&gt; &nbsp; &nbsp; not hidden) element,<br>&gt; &nbsp; &nbsp; OR is focusable but not in the current tab order (e.g., a<br>&gt; &nbsp; &nbsp; tabindex=&quot;-1&quot;), INCLUDE</tt><br><br><br>
<table border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td width="473" colspan="2" valign="middle"><div align="center"><font size="4" face="Verdana">Regards, <br><br>Fred Esch <br>Watson, IBM, W3C Accessibility</font></div></td></tr>
<tr valign="top"><td width="130" valign="middle"><img src="cid:1__=0ABBF5E4DFD55EE58f9e8a93df938690918c0AB@" width="163" height="23" alt="IBM Watson" align="bottom"></td><td width="342" valign="middle"><font size="4" face="Verdana">Watson Release Management and Quality </font></td></tr></table><br><br><img width="16" height="16" src="cid:2__=0ABBF5E4DFD55EE58f9e8a93df938690918c0AB@" border="0" alt="Inactive hide details for Joseph Scheuhammer ---03/14/2016 04:19:05 PM---Thanks Amelia, you raise a number of good points.  My "><font color="#424282">Joseph Scheuhammer ---03/14/2016 04:19:05 PM---Thanks Amelia, you raise a number of good points.  My comments are inline. On 2016-03-05 12:48 AM, A</font><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">Joseph Scheuhammer &lt;clown@alum.mit.edu&gt;</font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">Amelia Bellamy-Royds &lt;amelia.bellamy.royds@gmail.com&gt;, Fred Esch/Arlington/IBM@IBMUS</font><br><font size="2" color="#5F5F5F">Cc:        </font><font size="2">ARIA Working Group &lt;public-aria@w3.org&gt;, Richard Schwerdtfeger &lt;richschwer@gmail.com&gt;</font><br><font size="2" color="#5F5F5F">Date:        </font><font size="2">03/14/2016 04:19 PM</font><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">Re: Conflicting inclusion/exclusion criteria for elements in the  accessibility tree (Was: Re: [ARIA] Agenda: March 3, 2016 WAI-ARIA Working  Group)</font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br><tt>Thanks Amelia, you raise a number of good points. &nbsp;My comments are inline.<br><br>On 2016-03-05 12:48 AM, Amelia Bellamy-Royds wrote:<br>&gt; I have to agree with Joseph's concerns.<br>&gt;<br>&gt; This isn't a matter of whether author's should be able to mark <br>&gt; presentational elements as presentation. &nbsp;It's a question of how user <br>&gt; agents and ATs should behave when the information provided by the <br>&gt; author is inconsistent. &nbsp;In that case, I would always argue for the <br>&gt; user agent to serve the user, presenting as much information as possible.<br>&gt;<br>&gt; Interactive elements need to be in the accessibility tree. If not, <br>&gt; assistive technologies cannot effectively work as enhancements to the <br>&gt; underlying browser interface, with input and output working <br>&gt; independently from the DOM. &nbsp;If an author places <br>&gt; role=&quot;none&quot;/&quot;presentation&quot; on an interactive element, that would be an <br>&gt; author error and a robust approach would be to treat it as role unknown.<br><br>What user agents generally do in this case is ignore the role=&quot;none&quot;, <br>and fall back on the role implied by the element itself. &nbsp;An example: &nbsp;<br>If the markup is '&lt;a role=&quot;none&quot; href=&quot;somewhere.com&quot;&gt;', then the AAPI <br>role is &quot;link&quot;. &nbsp;Still, there may be cases where it's difficult to find <br>a meaningful implicit role. &nbsp;I will investigate. &nbsp;However, I don't <br>believe that user agents treat it as an unknown role, or, if they do, <br>it's only in rare cases. &nbsp;The main reason is that even where AAPIs <br>provide for an &quot;unknown role&quot;, that's not very useful to an AT.<br><br>&gt;<br>&gt; The behavior should be the same when an element is given ARIA <br>&gt; attributes but either explicitly or by default has a role of none. &nbsp;<br>&gt; Treat it as a generic object, unknown role or no specific role, but <br>&gt; ensure that the information that /was/ provided is available to the <br>&gt; user. &nbsp;It can still be reported as an authoring error in a validation <br>&gt; tool, but we need a useful behavior for user agents.<br>&gt;<br>&gt; The examples Fred provided, of wanting to have grouping elements that <br>&gt; are transparent to assistive tech, are never something you would want <br>&gt; to toggle on or off by changing a role. &nbsp;(And roles should never be <br>&gt; used to toggle state, anyway.) &nbsp;I can see no good reason why someone <br>&gt; would provide aria-label or other ARIA attributes on an element that <br>&gt; should be ignored. &nbsp;The logical assumption is that the author did not <br>&gt; understand the normal impact of role=&quot;none&quot;.<br>&gt;<br>&gt; aria-hidden, in contrast, /can/ be toggled. &nbsp;It therefore makes sense <br>&gt; that aria-hidden should take precedence over aria-label: an author <br>&gt; should not have to remove all the ARIA attributes in order to <br>&gt; temporarily hide some content. However, if the author does not also <br>&gt; take care to ensure that the element cannot receive keyboard focus, we <br>&gt; still have an inconsistent state that the user agent needs to respond <br>&gt; to: If the allegedly hidden content receives focus, the user needs to <br>&gt; know where they are.<br>&gt;<br>&gt; So I would suggest the following series of priorities for the Core-AAM <br>&gt; guidelines on whether to include an element in the accessibility tree:<br>&gt;<br>&gt; &nbsp;1. If element is not rendered (and therefore cannot receive focus)<br>&gt; &nbsp; &nbsp; EXCLUDE<br>&gt; &nbsp;2. Else, if element is in the current active tab order,<br>&gt; &nbsp; &nbsp; OR is identified as the aria-activedescendent of another element<br>&gt; &nbsp; &nbsp; that is in the current tab order, INCLUDE<br>&gt; &nbsp;3. Else, if element has aria-hidden=&quot;true&quot; (on self or ancestor),<br>&gt; &nbsp; &nbsp; OR is hidden according to the host language semantics and does not<br>&gt; &nbsp; &nbsp; have aria-hidden=&quot;false&quot; to override, EXCLUDE<br>&gt; &nbsp;4. Else, if element has other global ARIA attributes,<br>&gt; &nbsp; &nbsp; OR a computed role (by default or as set by the author) other than<br>&gt; &nbsp; &nbsp; none/presentation,<br>&gt; &nbsp; &nbsp; OR is referenced by an ARIA relationship of another (rendered and<br>&gt; &nbsp; &nbsp; not hidden) element,<br>&gt; &nbsp; &nbsp; OR is focusable but not in the current tab order (e.g., a<br>&gt; &nbsp; &nbsp; tabindex=&quot;-1&quot;), INCLUDE<br>&gt; &nbsp;5. Else, if element has an author-supplied role of none/presentation,<br>&gt; &nbsp; &nbsp; EXCLUDE<br>&gt; &nbsp;6. Otherwise, INCLUDE or EXCLUDE according to host language semantics<br>&gt;<br><br>I *think* this is right, although I want to mull it over some just in <br>case I can think of a counter example. &nbsp;If it is right, then it says the <br>same thing as the Core-AAM does, although in a different way -- the <br>core-aam has separate sections for exclusion and inclusion, and it's not <br>immediately clear how the two sections work together.<br><br>&gt; Host languages and/or their mapping specs would therefore need to <br>&gt; clearly define:<br>&gt;<br>&gt; &nbsp; * Which elements are not rendered at all (and are therefore also<br>&gt; &nbsp; &nbsp; neither perceivable nor interactive, and cannot be &quot;revealed&quot; with<br>&gt; &nbsp; &nbsp; aria-hidden=&quot;false&quot;)<br>&gt; &nbsp; * Which elements are in the current active tab order (factoring in<br>&gt; &nbsp; &nbsp; features such as &quot;inert&quot; subtrees in HTML 5.1), and which other<br>&gt; &nbsp; &nbsp; elements are focusable<br>&gt; &nbsp; * Which elements are hidden (not perceivable/interactive and should<br>&gt; &nbsp; &nbsp; be treated as aria-hidden unless specifically over-ridden)<br>&gt; &nbsp; * Default roles for each element type<br>&gt; &nbsp; * Any language-specific rules for including or excluding elements<br>&gt; &nbsp; &nbsp; (for many SVG elements, this would be whether or not they have an<br>&gt; &nbsp; &nbsp; associated &lt;title&gt; or &lt;desc&gt;; for HTML, it would include things<br>&gt; &nbsp; &nbsp; like &lt;img alt=&quot;&quot; /&gt;)<br>&gt;<br>&gt;<br>&gt; A final sticky issue, however, is what to do about other events. &nbsp;<br>&gt; Unlike keyboard focus, there isn't always a clear association between <br>&gt; an event and the semantically relevant element. &nbsp;Event listeners can <br>&gt; be added once to a parent element to collect events from many child <br>&gt; elements; without examining the script, you don't know whether the <br>&gt; action distinguishes between the individual element targets. &nbsp;The ARIA <br>&gt; event mapping guide requires accessibility API events to be fired for <br>&gt; changes to text content, but that doesn't mean every span needs to <br>&gt; watch for text mutations: these can be reported by the nearest <br>&gt; ancestor element that is included in the accessibility tree.<br>&gt;<br>&gt; The inclusion criteria &quot;Elements that may fire an accessibility API <br>&gt; event&quot; is therefore problematic. &nbsp;Whether or not an element may fire <br>&gt; an accessibility API event depends on whether or not it is included in <br>&gt; the accessibility tree. Looking through the accessibility API event <br>&gt; list [1], I think most of the events would either be covered by the <br>&gt; test for a valid role, or could be safely bubbled up to the nearest <br>&gt; ancestor in the accessibility tree. I would therefore remove that <br>&gt; inclusion criteria altogether.<br><br>First, whether an element might fire an accessibility event can be <br>captured, in part, by its role, as you allude to. &nbsp;There is a basic <br>abstract &quot;widget&quot; role in the ARIA taxonomy, which is defined as &quot;an <br>interactive component...&quot;. &nbsp;There are numerous roles that ultimately <br>subclass the widget role, including gridcell, slider, checkbox, menu, <br>and others. &nbsp;Any of the roles in this branch of the taxonomy potentially <br>fire accessibility events. &nbsp;Hence, any element that has a widget role, <br>either explicitly or implicitly, can cause an accessibility event, and <br>therefore has an associated accessible object.<br><br>Secondly, as you noted, there is a section on AAPI events [1a]. That <br>section includes a table documenting the relationship between various <br>aria-* states and properties and AAPI events. &nbsp;See [2], starting with <br>aria-activedescendant. &nbsp;The left most column of the table is a list of <br>aria-* attributes. &nbsp;The implication is that if an element has one of <br>those aria-* attributes, then it can cause an accessibility event. &nbsp;<br>Using aria-busy as an example: &nbsp;If an element has aria-busy specified <br>for it, it can change between its two values (true and false), and <br>thereby cause an &quot;aria-busy-changed' event in the accessibility API. &nbsp;<br>The same logic applies to the other aria-* attributes listed in the <br>table. &nbsp;The bottom line is that the presence of any of these aria-* <br>attributes entails that the element can cause an accessibility event. &nbsp;<br>Hence, the element has an accessible object in the accessibility tree.<br><br>Thirdly, live regions are potential event sources. &nbsp;Any element with an <br>aria-live attribute can cause an event.<br><br>Fourth, the proposed aria-keyshortcuts attribute documents what the <br>author has provided by way of keyboard activation of the element. That <br>entails that the element handles key events, which will have associated <br>key events in the AAPI.<br><br>I'm not sure if that covers all the cases, but perhaps it's the lion's <br>share. &nbsp;In any case, there are a number of ways to determine if an <br>element can cause an accessibility event, and, therefore, needs an <br>accessible object in the accessibility tree, if not already present.<br><br>&gt;<br>&gt;<br>&gt; I'm going to be cleaning up other parts of the SVG-AAM this weekend, <br>&gt; but I'll have to hold off making too many changes on these sections <br>&gt; until there is a group resolution on how to proceed for the Core-AAM.<br>&gt;<br>&gt; ~Amelia<br>&gt;<br>&gt; [1]: </tt><tt><a href="https://www.w3.org/TR/wai-aria-implementation/#mapping_events">https://www.w3.org/TR/wai-aria-implementation/#mapping_events</a></tt><tt><br><br>[1a] </tt><tt><a href="https://www.w3.org/TR/core-aam-1.1/#mapping_events">https://www.w3.org/TR/core-aam-1.1/#mapping_events</a></tt><tt><br>[2] </tt><tt><a href="https://www.w3.org/TR/core-aam-1.1/#event-aria-activedescendant">https://www.w3.org/TR/core-aam-1.1/#event-aria-activedescendant</a></tt><tt><br><br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; On 4 March 2016 at 10:43, Fred Esch &lt;fesch@us.ibm.com <br>&gt; &lt;</tt><tt><a href="mailto:fesch@us.ibm.com">mailto:fesch@us.ibm.com</a></tt><tt>&gt;&gt; wrote:<br>&gt;<br>&gt; &nbsp; &nbsp; Joseph,<br>&gt;<br>&gt; &nbsp; &nbsp; For SVG it is imperative that an author be able to mark an element<br>&gt; &nbsp; &nbsp; with the role none or presentation and know that the element will<br>&gt; &nbsp; &nbsp; not appear in the accessibility tree. SVG is too messy to force<br>&gt; &nbsp; &nbsp; authors and authoring tools to work through anything but the<br>&gt; &nbsp; &nbsp; simplest rule.<br>&gt;<br>&gt; &nbsp; &nbsp; Case 1: A group element is only present in the SVG to pass along<br>&gt; &nbsp; &nbsp; common attributes to their children. For instance you may group<br>&gt; &nbsp; &nbsp; text elements for labeling items around a circle, by their anchor<br>&gt; &nbsp; &nbsp; location. This group element has no semantic meaning. This is a<br>&gt; &nbsp; &nbsp; common use for group elements as it makes the SVG smaller and<br>&gt; &nbsp; &nbsp; makes it easier to edit reused styles. This group element should<br>&gt; &nbsp; &nbsp; not be included in the accessibility tree.<br>&gt;<br>&gt; &nbsp; &nbsp; Case 2: A group element has semantic meaning and the parent/child<br>&gt; &nbsp; &nbsp; relationship is significant. An example, would be a group element<br>&gt; &nbsp; &nbsp; representing a /stack/ in a /stacked/ bar chart. The children of<br>&gt; &nbsp; &nbsp; the /stack/ group element are the individual bars that make up the<br>&gt; &nbsp; &nbsp; stack and the /stack/ group element may contain /stack/ level<br>&gt; &nbsp; &nbsp; information, for example the total value (height) of the /stack/.<br>&gt; &nbsp; &nbsp; A good chart navigation tool would let a user visit the /stack/<br>&gt; &nbsp; &nbsp; and the user could either visit the individual bars in the /stack/<br>&gt; &nbsp; &nbsp; or move to another /stack/. Without using /stack/ level objects in<br>&gt; &nbsp; &nbsp; the accessibility tree the concept of a /stacked/ chart would be<br>&gt; &nbsp; &nbsp; lost. This group element should appear in the accessibility tree.<br>&gt;<br>&gt; &nbsp; &nbsp; Programmatically, both Case 1 and Case 2 group elements may look<br>&gt; &nbsp; &nbsp; similar. Authoring tools (few developer hand edit SVG) need to<br>&gt; &nbsp; &nbsp; provide a straight forward way to disallow elements from being in<br>&gt; &nbsp; &nbsp; the accessibility tree. Authors need a straight forward way of to<br>&gt; &nbsp; &nbsp; disallow elements from being in the accessibility tree. Without an<br>&gt; &nbsp; &nbsp; author friendly way of identifying case 1 from case 2 the<br>&gt; &nbsp; &nbsp; underlying concept of the graphic can be lost.<br>&gt;<br>&gt; &nbsp; &nbsp; The SVG accessibility task force decided that using a role of none<br>&gt; &nbsp; &nbsp; or presentation was the golden hammer that developers and<br>&gt; &nbsp; &nbsp; authoring tools need to exclude elements from the accessibility<br>&gt; &nbsp; &nbsp; tree. Amelia is add the changes in. If we need to change the ARIA<br>&gt; &nbsp; &nbsp; spec lets change it.<br>&gt;<br>&gt;<br>&gt; &nbsp; &nbsp; Regards,<br>&gt;<br>&gt; &nbsp; &nbsp; Fred Esch<br>&gt; &nbsp; &nbsp; Watson, IBM, W3C Accessibility<br>&gt; &nbsp; &nbsp; IBM Watson                  Watson Release Management and Quality<br>&gt;<br>&gt;<br>&gt;<br>&gt; &nbsp; &nbsp; Inactive hide details for Joseph Scheuhammer ---03/03/2016<br>&gt; &nbsp; &nbsp; 10:57:00 AM---On 2016-03-02 10:07 PM, Amelia Bellamy-Royds wrote:<br>&gt; &nbsp; &nbsp; &gt;Joseph Scheuhammer ---03/03/2016 10:57:00 AM---On 2016-03-02<br>&gt; &nbsp; &nbsp; 10:07 PM, Amelia Bellamy-Royds wrote: &gt;<br>&gt;<br>&gt; &nbsp; &nbsp; From: Joseph Scheuhammer &lt;clown@alum.mit.edu&gt;<br>&gt; &nbsp; &nbsp; To: Amelia Bellamy-Royds &lt;amelia.bellamy.royds@gmail.com&gt;, Richard<br>&gt; &nbsp; &nbsp; Schwerdtfeger &lt;richschwer@gmail.com &lt;</tt><tt><a href="mailto:richschwer@gmail.com">mailto:richschwer@gmail.com</a></tt><tt>&gt;&gt;<br>&gt; &nbsp; &nbsp; Cc: ARIA Working Group &lt;public-aria@w3.org&gt;<br>&gt; &nbsp; &nbsp; Date: 03/03/2016 10:57 AM<br>&gt; &nbsp; &nbsp; Subject: Re: [ARIA] Agenda: March 3, 2016 WAI-ARIA Working Group<br>&gt; &nbsp; &nbsp; ------------------------------------------------------------------------<br>&gt;<br>&gt;<br>&gt;<br>&gt; &nbsp; &nbsp; On 2016-03-02 10:07 PM, Amelia Bellamy-Royds wrote:<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; /... That said/, I would like it to be more clear. I think the<br>&gt; &nbsp; &nbsp; easiest<br>&gt; &nbsp; &nbsp; &gt; change would be to modify the bullet point (in section 5.1.2 of the<br>&gt; &nbsp; &nbsp; &gt; Core-AAM) that currently says:<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; * Elements that have a global WAI-ARIA attribute but do<br>&gt; &nbsp; &nbsp; not have<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp; aria-hidden=&quot;true&quot;. (See Excluding Elements in the<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp; Accessibility Tree for additional guidance on aria-hidden.)<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; To instead say<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; * Elements that have a global WAI-ARIA attribute but do<br>&gt; &nbsp; &nbsp; not have<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp; aria-hidden=&quot;true&quot; or a mapped role of presentation or none.<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp; (See Excluding Elements in the Accessibility Tree for<br>&gt; &nbsp; &nbsp; &gt; &nbsp; &nbsp; &nbsp; &nbsp; additional guidance on aria-hidden and presentational<br>&gt; &nbsp; &nbsp; roles.)<br>&gt; &nbsp; &nbsp; &gt;<br>&gt;<br>&gt; &nbsp; &nbsp; I don't believe that is consistent with the specification of the<br>&gt; &nbsp; &nbsp; presentation role. &nbsp;Either that, or the specification needs to change.<br>&gt;<br>&gt; &nbsp; &nbsp; I filed ISSUE-708 about this in Mar 2015 [1]. There have been<br>&gt; &nbsp; &nbsp; discussions at the AAPI teleconferences, and we have been approaching<br>&gt; &nbsp; &nbsp; agreement on changes to the core-aam inclusion rules. Here's a<br>&gt; &nbsp; &nbsp; summary:<br>&gt;<br>&gt; &nbsp; &nbsp; 1. Using role=&quot;presentation&quot; on an element that is interactive is an<br>&gt; &nbsp; &nbsp; author error, and the role will be ignored. &nbsp;Here, &quot;interactive&quot;<br>&gt; &nbsp; &nbsp; means<br>&gt; &nbsp; &nbsp; any of (1) the element is focusable, or (2) can cause an AAPI event<br>&gt; &nbsp; &nbsp; [2]. &nbsp;The reason that presentation is ignored in these cases is<br>&gt; &nbsp; &nbsp; that the<br>&gt; &nbsp; &nbsp; presentation role will stop neither a DOM event nor the corresponding<br>&gt; &nbsp; &nbsp; AAPI event from occurring, and the event will have an associated<br>&gt; &nbsp; &nbsp; source/target. That is, there will be an accessible object in the<br>&gt; &nbsp; &nbsp; a11y<br>&gt; &nbsp; &nbsp; tree as the target of the event.<br>&gt;<br>&gt; &nbsp; &nbsp; The ARIA specification for role=&quot;presentation&quot; at least documents the<br>&gt; &nbsp; &nbsp; focusable case:<br>&gt; &nbsp; &nbsp; &quot;If an element with a role of presentation is focusable, user agents<br>&gt; &nbsp; &nbsp; MUST ignore the normal effect of the role and expose the element with<br>&gt; &nbsp; &nbsp; implicit native semantics, in order to ensure that the element is<br>&gt; &nbsp; &nbsp; both<br>&gt; &nbsp; &nbsp; understandable and operable&quot; [3].<br>&gt;<br>&gt; &nbsp; &nbsp; 2. Using role=&quot;presentation&quot; in conjunction with a global aria<br>&gt; &nbsp; &nbsp; property<br>&gt; &nbsp; &nbsp; is also an author error. &nbsp;The role says that the element has no<br>&gt; &nbsp; &nbsp; meaning,<br>&gt; &nbsp; &nbsp; whereas the aria-* says that it does. &nbsp; In this case, the ARIA<br>&gt; &nbsp; &nbsp; specification states:<br>&gt; &nbsp; &nbsp; &quot; ...the user agent MUST always expose global WAI-ARIAstates and<br>&gt; &nbsp; &nbsp; properties to accessibility APIs, even if an element has an<br>&gt; &nbsp; &nbsp; explicit or<br>&gt; &nbsp; &nbsp; inherited role of presentation&quot; [3].||||||<br>&gt;<br>&gt; &nbsp; &nbsp; In summary, the core-aam inclusion rules need changes, but those<br>&gt; &nbsp; &nbsp; changes<br>&gt; &nbsp; &nbsp; must be in accordance with the ARIA spec. &nbsp;If it's necessary that<br>&gt; &nbsp; &nbsp; there<br>&gt; &nbsp; &nbsp; are cases where role=&quot;presentation&quot; *always* excludes an element from<br>&gt; &nbsp; &nbsp; the accessibility tree, then the ARIA specification *itself* must be<br>&gt; &nbsp; &nbsp; modified.<br>&gt;<br>&gt;<br>&gt; &nbsp; &nbsp; [1] </tt><tt><a href="https://www.w3.org/WAI/ARIA/track/issues/708">https://www.w3.org/WAI/ARIA/track/issues/708</a></tt><tt><br>&gt; &nbsp; &nbsp; [2]<br>&gt; &nbsp; &nbsp; </tt><tt><a href="http://w3c.github.io/aria/core-aam/core-aam.html#mapping_events_state-change">http://w3c.github.io/aria/core-aam/core-aam.html#mapping_events_state-change</a></tt><tt><br>&gt; &nbsp; &nbsp; [3] </tt><tt><a href="http://w3c.github.io/aria/aria/aria.html#presentation">http://w3c.github.io/aria/aria/aria.html#presentation</a></tt><tt><br>&gt;<br>&gt; &nbsp; &nbsp; On 2016-03-02 10:31 PM, Amelia Bellamy-Royds wrote:<br>&gt; &nbsp; &nbsp; &gt; If there's time, I'd appreciate the group taking a look at GitHub<br>&gt; &nbsp; &nbsp; &gt; Issue #136, on the interaction of role=none/presentation and other<br>&gt; &nbsp; &nbsp; &gt; global ARIA attributes. Joanmarie filed the issue when trying to<br>&gt; &nbsp; &nbsp; &gt; implement SVG-AAM, but it really stems from the Core mapping spec.<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; </tt><tt><a href="https://github.com/w3c/aria/issues/136">https://github.com/w3c/aria/issues/136</a></tt><tt><br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; I'd like to confirm that the interpretation we're taking for<br>&gt; &nbsp; &nbsp; SVG-AAM<br>&gt; &nbsp; &nbsp; &gt; matches how others think Core-AAM should be interpreted. And it<br>&gt; &nbsp; &nbsp; would<br>&gt; &nbsp; &nbsp; &gt; be nice to get clarified language into both specs in time for<br>&gt; &nbsp; &nbsp; &gt; publication of the new drafts next week.<br>&gt; &nbsp; &nbsp; &gt;<br>&gt; &nbsp; &nbsp; &gt; ~Amelia<br>&gt; &nbsp; &nbsp; &gt;<br>&gt;<br><br><br>-- <br>;;;;joseph.<br><br>'Die Wahrheit ist Irgendwo da Draußen. Wieder.'<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- C. Carter -<br><br><br></tt><br><br><BR>
</body></html>

--1__
BBF5E4DFD55EE58f9e8a93df938690918c0ABBF5E4DFD55EE5--


--0__
BBF5E4DFD55EE58f9e8a93df938690918c0ABBF5E4DFD55EE5
Content-type: image/gif; 
	name="0E062391.gif"
Content-Disposition: inline; filename="0E062391.gif"
Content-ID: <1__
BBF5E4DFD55EE58f9e8a93df938690918c0AB@>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAKMAAAAXCAMAAABQ6Q/RAAADAFBMVEXIx8cxLS5MSUrW1dXx8fE/
Ozzj4+N2c3SRj49oZWaEgYKsq6uenZ26ubmbm5v29vZ7e3tTU1M7OzsfHx/FxcX39/eamppmZmaR
j5AgICCqqqrR0dFaV1gAAAAjHyD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAADe7fL7AAADE0lEQVR4nM2WiW7kIAyGTbhz9O6eCL//U6bYGJJOst2dlaqppUm4
+fhtnAH8+gb7sroZxodWGZfA5UxP52+Ic2qVEbLDxujTLXnOTHydSDxNdC7DR+NvYQK02PLQYBDn
z5dRw04GAPibKIBec2GKuZjyrtbosVZr72J397Xyc+suPshsiOUBvRb4xavlzYoA2tI+XEQTFDfT
rkCFiFLIec8Y82jQ0dIhjOU5lmWGa254owKe/J5xPDBqdYHLphZBm08Zi5/nOnEsEUmHwiG6cx3X
Z6k8ID5c6kgHHC4YlblkJHcNlotO7Xp0RVP6lLFIPtTmsuDQDn+FGT4YTy3OXcTFEy85VUYonQMQ
WHWopSIdR83aTYRs5bBD9cz+VjBjyI3RbVEkSu7ed/XF8r18ExXF25ZJiWnk/RhD1S1JlFT5mLGc
B0KYNJG5rtEkLhjPGUVz32Lh2iw+k68WnhqJjeZTldqBr27dFkCz2mlyooxcac0zJUyWM8YKFnn8
KLofdFy7brvwXLctZs+6KScOTrSr6uft2y4SmJqa+tUcxPeKY/iEcc4+W8qNfYUrdSTtYvnRrfE1
rgk1QOqBs207ideoc2gLJGFMtEQ6YQy53OvwA1DifmM86PhQKxSZ66+uI/o6zdVcMmwtRHrBiGbm
XWysp2FTjbERHHUEPXAgtDRxrY5Vfsvph6PebGnFvmcswSnp2PcDcECPdYzkz2M8ziBH9rtl8c/3
Gh/X9TtuOhphWyToedNUzEp0boyZ8zQNnHLrXIhLy5jplBHVINnHmKj+415Lamt+QAdWDkphmcC5
mh8lodvqNsOqDyHw5GjamHjKGLKEj66LuK7i5XfmsVbwdX1+leL9vTiLIiTy8qFFjHwygjQA7j46
sUc/oxpoY4w9YzRW+RbsZeJ135mnJ9ErCuv8T4yqCGH6zYoGOyOXDowSqJ5yRtq6jzq2/z2IL7+l
H58eaWxMiULLlRjUOCU2+kfKNkkDuam8KJP6eqPB0+eIU7PexswpjQdG5AAJEOL1X+vPt/7/cuLg
UP7L/QtHfANvSEKvsxvttAAAAABJRU5ErkJggg=


--0__
BBF5E4DFD55EE58f9e8a93df938690918c0ABBF5E4DFD55EE5
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <2__
BBF5E4DFD55EE58f9e8a93df938690918c0AB@>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__
BBF5E4DFD55EE58f9e8a93df938690918c0ABBF5E4DFD55EE5--

Received on Tuesday, 15 March 2016 13:25:15 UTC