WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: JAWS 14 issues with partial view reloads for Single Page Java web applications

for

From: Mary Elizabeth Sullivan
Date: Jul 21, 2015 8:29PM


Thank you all for your responses!

I'm a bit tired so hopefully this makes sense.

I'll definitely throw a few of the options the devs way.

So far the .on() and maybe the timeout solution might be viable options. Aria live I don't think would be fitting here since the whole centre piece is updating with new content at each step of the flow. (It's multiple form field pages.)

I agree that the default browser focusing would be great. Even throwing the user to the document.title manually would be preferable.

With the devs adding # the page does refresh in a way and sometimes JAWS works properly on ie8 and ie11, but other times the previous page (no longer visible to the full vision user) is read all over again including the form fields before the new page in read out and available. Which is why QAT has raised it as an issue and continue to keep it as an issue.
(Weirdly there are no issues with JAWS v14 and the latest Firefox.)


To have QAT be able to test it with consistent results and pass the defect I would like to at least move the focus consistently to the forms steps progress bar at the top of the page in the least. But somehow the virtual cursor is moving with the .focus() js. Which is why I thought that maybe the dynamic content was drawing the attention of the virtual cursor.

The real question is why is the virtual cursor not following the .focus(), if not for another event that is drawing JAWS out to another div on the screen?

I'll give it a try with nvda and roll the whole thing on with fiddler on in the background to see what's happening from an http level.

(I don't have direct access to the code but work closely with the developers.)



Sent from my iPhone

> On Jul 21, 2015, at 20:34, Sean Curtis < <EMAIL REMOVED> > wrote:
>
> Beth you mentioned something about them using a "#" — if they're just appending that each time it might trigger the default browser focusing. Just something to check
>
> Cheers,
>
> Sean
>
>> On 22 Jul 2015, at 2:42 am, " <EMAIL REMOVED> " < <EMAIL REMOVED> > wrote:
>>
>> Hi,
>>
>> I'm making a few assumptions about what you have control of here:
>>
>> If the focus is moving to the content that has just been loaded in, that
>> is being done by JS somewhere, and should probably be taken out, assuming
>> you control it. That isn't default browser behaviour.
>>
>> I think you might want to use aria-live to announce to the user that there
>> is new content instead. You apply it to the container that is on the page
>> that will eventually contain the asynchronously loaded content.
>> https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Re
>> gions
>>
>> You are right that document ready is too early to affect content loaded in
>> via AJAX, but instead of using a timeout (when you cannot guarantee it will
>> run at the right time) you listen for the completion of the AJAX call.
>>
>> .live() is a deprecated jQuery function that would make sure that event
>> handlers (like 'click') were 'bound' (applied) to matching elements even
>> after the page had finished loading. You should use .on and event
>> delegation instead. Again you apply it to the container that is there on
>> the page from load, and give it an extra argument to limit what elements it
>> gets applied to. http://learn.jquery.com/events/event-delegation/ gives a
>> very full description.
>>
>> Thanks,
>> Dawn
>>
>>
>> -------- Original Message --------
>>> From: "Jonathan C. Cohn" < <EMAIL REMOVED> >
>>> Sent: Tuesday, July 21, 2015 4:52 PM
>>> To: "WebAIM Discussion List" < <EMAIL REMOVED> >
>>> Subject: Re: [WebAIM] JAWS 14 issues with partial view reloads for Single
>> Page Java web applications
>>>
>>> There is a DocumentLoadedEvent with JAWS scripting that you could use if
>> you want to do something client side. Jonathan Jonathan Cohn > On Jul 21,
>> 2015, at 11:40 AM, MEJ - Beth Sullivan < <EMAIL REMOVED> > wrote:
>>>> Ya I've thought of that as a solution, but it's hard to do a timeout
>> when > you don't know the customer's environment using the application. > >
>> I'm concerned if it goes to early, then the same issue will result. > > If
>> it goes too late, the user may have already move forward in the >
>> application or corrected the improperly moved virtual cursor, only to be >
>> randomly moved to another part of the page. (We would know it was the right
>>> spot but for a JAWS user I'd be concerned that would be very
>> disorienting.) > > Thank you, > > Beth > >> On Tue, Jul 21, 2015 at 11:21
>> AM, Paul J. Adam < <EMAIL REMOVED> > wrote: >> >> Maybe you need to do a
>> setTimeout to wait a few seconds for the page to >> fully load before
>> sending focus manually? I've had to do that to modify the >> accessibility
>> properties of elements that load in via JS/iframes. >> >> Paul J. Adam >>
>> Accessibility Evangelist >> www.deque.com >> >> Join us at our Mobile
>> Accessibility "Bootcamp!" >> August 6-7 in Austin Texas >>
>> https://dequeuniversity.com/events/2015/mobile >> Topics include responsive
>> web design, native apps, & more >> >>>> On Jul 21, 2015, at 9:18 AM, Mary
>> Elizabeth Sullivan < >>> <EMAIL REMOVED> > wrote: >>> >>> It's a
>> very interesting problem. Essentially the team is trying to move >> the
>> focus manually using js. However, there is dynamic server side content >>
>> that is being added asynchronously which is stealing the jaws virtual >>
>> cursor from the .focus() code when the dynamic content loads. >>> >>> You
>> can see visually that the dotted line and focus should be on one >>
>> element. But it moves to the dynamic content instead. >>> >>> I'm thinking
>> that it is a page lifecycle issue? >>> >>> That they are using
>> document.ready() which is too early to be calling >> that js function. >>>
>> I'm pretty sure a .live function might do the trick instead maybe. I'm >>
>> not a js guru but that might be something. >>> >>> I wish I could call the
>> js when the last piece of dynamic content is >> loaded server side, but I
>> know that can be brutal to implement Sometimes >> with frameworks like
>> Java. >>> >>> Any other thoughts? >>> Thanks Paul for getting back to me.
>>>>>>>> -Beth >>> >>> Sent from my iPhone >>> >>>> On Jul 20, 2015, at
>> 15:53, Paul J. Adam < <EMAIL REMOVED> > wrote: >>>> >>>> Yes I've seen
>> many problems with Single Page Apps. Focus management is >> the biggest
>> problem. Speaking dynamic content and unique page titles is >> another
>> major problem. You have to do this all manually with JavaScript. >>>> >>>>
>> Paul J. Adam >>>> Accessibility Evangelist >>>> www.deque.com >>>> >>>>
>> Join us at our Mobile Accessibility "Bootcamp!" >>>> August 6-7 in Austin
>> Texas >>>> https://dequeuniversity.com/events/2015/mobile >>>> Topics
>> include responsive web design, native apps, & more >>>> >>>>> On Jul 20,
>> 2015, at 2:14 PM, MEJ - Beth Sullivan < >> <EMAIL REMOVED> >
>> wrote: >>>>> >>>>> Hello, >>>>> >>>>> Has anyone seen an issue with single
>> page java applications that are >> using >>>>> partial view using ajax to
>> refresh the inside of the page dynamically >> and >>>>> JAWS 14. They are
>> also injecting a # at the end of the url to make >> sure it >>>>> can be
>> saved as a page/bookmarked. >>>>> >>>>> Any thoughts would be great. >>>>>
>>>>>>> Thank you, >>>>> >>>>> Beth >>>>>
>> >> subscription, visit http://list.webaim.org/ >>>>> List archives at
>> http://webaim.org/discussion/archives >>>>> >> <EMAIL REMOVED> >>>> >>>>
>> >> subscription, visit http://list.webaim.org/ >>>> List archives at
>> http://webaim.org/discussion/archives >>>> >> <EMAIL REMOVED> >>>
>> >> subscription, visit http://list.webaim.org/ >>> List archives at
>> http://webaim.org/discussion/archives >>> >> <EMAIL REMOVED> >> >>
>> >> subscription, visit http://list.webaim.org/ >> List archives at
>> http://webaim.org/discussion/archives >> >> <EMAIL REMOVED> >
>> >> subscription, visit http://list.webaim.org/ > List archives at
>> http://webaim.org/discussion/archives > >> <EMAIL REMOVED>
>> >> subscription, visit http://list.webaim.org/ List archives at
>> http://webaim.org/discussion/archives >> <EMAIL REMOVED>
>>
>>
>> >> >> >> > > > >