WebAIM - Web Accessibility In Mind

E-mail List Archives

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

for

Number of posts in this thread: 13 (In chronological order)

From: MEJ - Beth Sullivan
Date: Mon, Jul 20 2015 1:14PM
Subject: JAWS 14 issues with partial view reloads for Single Page Java web applications
No previous message | Next message →

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

From: Paul J. Adam
Date: Mon, Jul 20 2015 1:53PM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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
> > > >

From: Mary Elizabeth Sullivan
Date: Tue, Jul 21 2015 8:18AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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 ADDRESS 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
>> >> >> >> >
> > > >

From: Paul J. Adam
Date: Tue, Jul 21 2015 9:21AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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 ADDRESS 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 ADDRESS 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
>>> >>> >>> >>> >>
>> >> >> >> > > > >

From: MEJ - Beth Sullivan
Date: Tue, Jul 21 2015 9:40AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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
> >>> > >>> > >>> > >>> > >>
> >> > >> > >> > >> > > > > > > > > >
> > > > >

From: Jonathan C. Cohn
Date: Tue, Jul 21 2015 9:51AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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
>>>>> >>>>> >>>>> >>>>> >>>>
>>>> >>>> >>>> >>>> >>> >>> >>> >>> >>
>> >> >> >> > > > >

From: dawn
Date: Tue, Jul 21 2015 10:42AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS REMOVED = >
> Sent: Tuesday, July 21, 2015 4:52 PM
> To: "WebAIM Discussion List" < = EMAIL ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS REMOVED = >>>> >>>>
subscription, visit http://list.webaim.org/ >>>> List archives at
http://webaim.org/discussion/archives >>>> = EMAIL ADDRESS REMOVED = >>>
subscription, visit http://list.webaim.org/ >>> List archives at
http://webaim.org/discussion/archives >>> = EMAIL ADDRESS REMOVED = >> >>
subscription, visit http://list.webaim.org/ >> List archives at
http://webaim.org/discussion/archives >> = EMAIL ADDRESS REMOVED = >
subscription, visit http://list.webaim.org/ > List archives at
http://webaim.org/discussion/archives > = EMAIL ADDRESS REMOVED =
subscription, visit http://list.webaim.org/ List archives at
http://webaim.org/discussion/archives = EMAIL ADDRESS REMOVED =

From: Jonathan Avila
Date: Tue, Jul 21 2015 3:34PM
Subject: Re: JAWS 14 issues with partial view reloads for SinglePage Java web applications
← Previous message | Next message →

> 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.

Dynamic code cannot steal the virtual cursor to my knowledge unless it also had focused content within it. My guess is that JAWS just isn't seeing the focus change or the new content. As others have said this is likely a timing issue. If you are afraid of using a hard number with setTimeout it may be more useful to actually check for the presence of the page settling down before calling .focus() -- so a setTimeout might act as a callback and simply check over and over until certain elements or attributes are present or set and then after that criteria is set actually call the .focus() method. So basically the code is waiting for a trigger by setting a timer that runs until the trigger occurs.

Jonathan

--
Jonathan Avila
Chief Accessibility Officer
SSB BART Group
= EMAIL ADDRESS REMOVED =

703-637-8957 (o)
Follow us: Facebook | Twitter | LinkedIn | Blog | Newsletter


From: Sean Curtis
Date: Tue, Jul 21 2015 6:34PM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS REMOVED = " < = EMAIL ADDRESS 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 ADDRESS REMOVED = >
>> Sent: Tuesday, July 21, 2015 4:52 PM
>> To: "WebAIM Discussion List" < = EMAIL ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS REMOVED = >>>> >>>>
> > subscription, visit http://list.webaim.org/ >>>> List archives at
> http://webaim.org/discussion/archives >>>> > = EMAIL ADDRESS REMOVED = >>>
> > subscription, visit http://list.webaim.org/ >>> List archives at
> http://webaim.org/discussion/archives >>> > = EMAIL ADDRESS REMOVED = >> >>
> > subscription, visit http://list.webaim.org/ >> List archives at
> http://webaim.org/discussion/archives >> > = EMAIL ADDRESS REMOVED = >
> > subscription, visit http://list.webaim.org/ > List archives at
> http://webaim.org/discussion/archives > > = EMAIL ADDRESS REMOVED =
> > subscription, visit http://list.webaim.org/ List archives at
> http://webaim.org/discussion/archives > = EMAIL ADDRESS REMOVED =
>
>
> > > >

From: Mary Elizabeth Sullivan
Date: Tue, Jul 21 2015 8:29PM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

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 ADDRESS 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 ADDRESS REMOVED = " < = EMAIL ADDRESS 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 ADDRESS REMOVED = >
>>> Sent: Tuesday, July 21, 2015 4:52 PM
>>> To: "WebAIM Discussion List" < = EMAIL ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS 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 ADDRESS REMOVED = >>>> >>>>
>> >> subscription, visit http://list.webaim.org/ >>>> List archives at
>> http://webaim.org/discussion/archives >>>> >> = EMAIL ADDRESS REMOVED = >>>
>> >> subscription, visit http://list.webaim.org/ >>> List archives at
>> http://webaim.org/discussion/archives >>> >> = EMAIL ADDRESS REMOVED = >> >>
>> >> subscription, visit http://list.webaim.org/ >> List archives at
>> http://webaim.org/discussion/archives >> >> = EMAIL ADDRESS REMOVED = >
>> >> subscription, visit http://list.webaim.org/ > List archives at
>> http://webaim.org/discussion/archives > >> = EMAIL ADDRESS REMOVED =
>> >> subscription, visit http://list.webaim.org/ List archives at
>> http://webaim.org/discussion/archives >> = EMAIL ADDRESS REMOVED =
>>
>>
>> >> >> >> > > > >

From: _mallory
Date: Wed, Jul 22 2015 1:11AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

On Tue, Jul 21, 2015 at 05:42:50PM +0100, = EMAIL ADDRESS REMOVED = wrote:
> 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.

It's too bad we don't have cross-UA mutation/object observers. But so
a Promise might indeed be the best thing for dealing with focus, instead
of setTimeouts.

Having JS determine focus instead of whatever browser default there is
can be desireable in cases where users (all of them) expect to stay in
the same page position even when new content loads (so long as it isn't
loading far away from current-position).

_mallory

From: Mary Elizabeth Sullivan
Date: Wed, Jul 22 2015 4:56AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | Next message →

Interesting! What do you mean by "promise".

Sent from my iPhone

> On Jul 22, 2015, at 03:11, _mallory < = EMAIL ADDRESS REMOVED = > wrote:
>
>> On Tue, Jul 21, 2015 at 05:42:50PM +0100, = EMAIL ADDRESS REMOVED = wrote:
>> 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.
>
> It's too bad we don't have cross-UA mutation/object observers. But so
> a Promise might indeed be the best thing for dealing with focus, instead
> of setTimeouts.
>
> Having JS determine focus instead of whatever browser default there is
> can be desireable in cases where users (all of them) expect to stay in
> the same page position even when new content loads (so long as it isn't
> loading far away from current-position).
>
> _mallory
> > > >

From: Asa Baylus
Date: Wed, Jul 22 2015 5:08AM
Subject: Re: JAWS 14 issues with partial view reloads for Single Page Java web applications
← Previous message | No next message

Promises are wonderful here's a link.
https://promisesaplus.com

If you're using jquery then you have access to promises - not A spec promises but that shouldn't matter for your use case

A simple callback function may work just as well.

There are a number of other patterns for handling control flow is JS land.

setTimeout is not a good match for the use case you've described.

If your devs can reproduce as a fiddle or jsbin and send a link it would really help.

Asa

Sent from my iPhone

> On Jul 22, 2015, at 6:56 AM, Mary Elizabeth Sullivan < = EMAIL ADDRESS REMOVED = > wrote:
>
> Interesting! What do you mean by "promise".
>
> Sent from my iPhone
>
>>> On Jul 22, 2015, at 03:11, _mallory < = EMAIL ADDRESS REMOVED = > wrote:
>>>
>>> On Tue, Jul 21, 2015 at 05:42:50PM +0100, = EMAIL ADDRESS REMOVED = wrote:
>>> 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.
>>
>> It's too bad we don't have cross-UA mutation/object observers. But so
>> a Promise might indeed be the best thing for dealing with focus, instead
>> of setTimeouts.
>>
>> Having JS determine focus instead of whatever browser default there is
>> can be desireable in cases where users (all of them) expect to stay in
>> the same page position even when new content loads (so long as it isn't
>> loading far away from current-position).
>>
>> _mallory
>> >> >> >> > > > >