W3C home > Mailing lists > Public > w3c-wai-ig@w3.org > April to June 2012

Re: Fw: [NVDA] #2390: NVDA doesn't handle role=dialog with supporting ARIA attributes according to spec

From: Bryan Garaventa <bryan.garaventa@whatsock.com>
Date: Wed, 30 May 2012 15:05:23 -0700
Message-ID: <2FA865506EC942EDA3FD74AFC93F6586@WAMPAS>
To: "James Nurthen" <james@nurthen.com>
Cc: <w3c-wai-ig@w3.org>
I understand that, this isn't what the bug is about.

This is my latest comment to the NVDA dev team:

"Just to clarify one thing about role=presentation, I'm not saying that the node with role=presentation should be removed from the user agent, such as in the Virtual Buffer, but that role=presentation should simply prevent that roped off content from being queried as part of a description calculation."

This is what the W3C user agent spec says role=presentation is supposed to do.

The problem here is that NVDA treats role=dialog as the same widget type as role=alertdialog, and they are not the same, nor should they be.

For a complete description, please read the bug comments at
http://www.nvda-project.org/ticket/2390



  ----- Original Message ----- 
  From: James Nurthen 
  To: Bryan Garaventa 
  Cc: w3c-wai-ig@w3.org 
  Sent: Wednesday, May 30, 2012 10:45 AM
  Subject: Re: Fw: [NVDA] #2390: NVDA doesn't handle role=dialog with supporting ARIA attributes according to spec


  Bryan,
  This isn't correct. Putting role="presentation" on a DIV does absolutely nothing. The presentation role only modifies the native semantics of the element itself, not the element's children (unless the element has child elements which are only valid in context of the parent such as a grid or list). DIV has no native semantics so there is nothing to change. Any text children of an element with presentation role are also still present in the accessibility tree.


  I'm not sure why you are trying to prevent the list from being included in the accessibility tree - but if this is really what you want to do then you can either use display:none to hide it from everyone or aria-hidden="true" which would only hide it when accessing through the accessibility APIs.


  Regards,
  James


  On Wed, May 30, 2012 at 10:00 AM, Bryan Garaventa <bryan.garaventa@whatsock.com> wrote:

    Well, here is my reply. If I'm incorrect about this, let me know.


    ----- Original Message ----- From: "NVDA Trac" <noreply+nvdaTrac@nvaccess.org>
    Cc: <nvda-dev@lists.nvaccess.org>

    Sent: Wednesday, May 30, 2012 9:53 AM

    Subject: Re: [NVDA] #2390: NVDA doesn't handle role=dialog with supporting ARIA attributes according to spec



      #2390: NVDA doesn't handle role=dialog with supporting ARIA attributes according
      to spec
      -------------------------------+------------------------
            Reporter:  bgaraventa  |       Owner:
                Type:  defect      |      Status:  new
            Priority:  minor       |   Milestone:
           Component:  Core        |     Version:  2012.2rc1
          Resolution:              |    Keywords:  ARIA
      Operating system:  Windows XP  |  Blocked by:
            Blocking:              |
      -------------------------------+------------------------


      Comment (by bgaraventa):

      I understand what you said about alertdialog, however dialog and
      alertdialog are not the same widget type. If they were the same, there
      would be no need for two separate roles in the spec.

      alertdialog is meant to have its content announced automatically, whereas
      dialogs are not. There are cases where both are valuable implementations.

      The problem here is that NVDA is enforcing alertdialog behavior
      regardless, and ignoring cases when a simple dialog is more accessible.

      The case for making role=presentation only apply to direct descendants
      doesn't work in practice, especially when you have other role types in the
      mix.

      E.G

      <div role=presentation>
      <ul role=listbox>
      ... Countries List ...
      </ul>
      </div>

      Since you can't change the roles of an object without rerendering the
      object, this is the only way to prevent the list from being included, but
      if you are only including the first level of descendants, then none of the
      list items are included in the calculation.

      This is also true for more complex controls like data tables, ARIA grids,
      and so on. There has to be a way of roping off content like this
      programmatically to ensure accessibility.

      -- 
      Ticket URL: <http://www.nvda-project.org/ticket/2390#comment:8>

      NVDA <http://www.nvda-project.org/>
      A free and open-source screen reader for Windows
Received on Wednesday, 30 May 2012 22:05:56 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 30 May 2012 22:05:58 GMT