<AWT Dev> <Swing Dev>  JDK-7124285: Nothing heard from VoiceOver regarding the status of the progress bar
Sergey.Bylokhov at oracle.com
Wed Nov 7 19:04:40 UTC 2018
I checked it on the fresh build of jdk/client, and confirm that it is possible to select progress bar using ctrl+option+up/down/left.
Screenshot is attached to the bug.
On 04/11/2018 23:08, shashidhara.veerabhadraiah at oracle.com wrote:
> Hi Sergey, I enabled 'All controls' access in the 'Keyboard->Shortcuts->Accessibility' but still was not able to get the focus unto the progress bar and even with the short cut that you mentioned it always skipped the progress bar. The control would move from 'edit text box' to 'Start loading text' button. Even the bug description says to use the tab key to do this operation.
> Only with this fix, I was able to select the progress bar control and otherwise not and that is true as per the focus traversal policy used for this control type.
> Thanks and regards,
> On 03/11/18 3:00 AM, Sergey Bylokhov wrote:
>> I am not sure that the focusable property should be changed to fix this issue.
>> because the property is ignored when a11y shortcuts are used, at least I am
>> able to select the progress bar using ctr+shift+cnd+left/right/up/down. And
>> VO reads the current value of the progress bar, but if the demo is in progress("Start
>> loading text" button was pressed) the VO did not read information about the new
>> values of the progress bar.
>> On 24/10/2018 22:31, Shashidhara Veerabhadraiah wrote:
>>> Hi Sergey, While fixing this bug I did not verified the behavior of other components and how they behave with respect to the AT. Since the question about other components came up and did some debugging on that part. Below is the reason that I could find:
>>> It is all about the focus traversal policy that is used for each component type. While the both the JProgressBar and JLabel derived from JComponent and then JComponent is also derived from Container and Component class. JProgressBar component goes via the DefaultFocusTraversalPolicy(.java) while the JLabel goes via the ContainerOrderFocusTraversalPolicy(.java) where there are overriding methods of accept() function. This builds different behavior for JLabel and JProressBar while focus traversal.
>>> Since the both the components are derived out of Component class both are default to focusable to true(Component.java) but because of the way accept() method is overridden, JProgressBar's focusable state is considered only when the focus traversable is overridden(not FOCUS_TRAVERSABLE_DEFAULT). Now by calling setFocusable() explicitly overrides the current policy to FOCUS_TRAVERSABLE_SET, hence the focusable state of the JProgressBar is considered afterwards.
>>> Hope this answers. Please let me know if you have any questions.
>>> Thanks and regards,
>>> -----Original Message-----
>>> From: Sergey Bylokhov
>>> Sent: Thursday, October 25, 2018 3:11 AM
>>> To: Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com>; awt-dev at openjdk.java.net; swing-dev at openjdk.java.net
>>> Subject: Re: <Swing Dev>  JDK-7124285: Nothing heard from VoiceOver regarding the status of the progress bar
>>> Hi, Shashi.
>>> Can you please provide more information about relation of focusable state and a VoiceOver? The simple JLabel is not focusable, but VoiceOver reads its contents, and it is possible to select the label using VoiceOver's shortcuts.
>>> On 22/10/2018 00:36, shashidhara.veerabhadraiah at oracle.com wrote:
>>>> Hi All, Please review a swingset fix for the below bug.
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-7124285
>>>> Fix: http://cr.openjdk.java.net/~sveerabhadra/7124285/webrev.00/
>>>> Problem: The JProgressBar component used in the swingset demo was not focusable and once it is turned on, now the progress status is getting narrated via the voice over.
>>>> Thanks and regards,
Best regards, Sergey.
More information about the awt-dev