<Swing Dev> RFR: 8239137: JAWS does not always announce the value of JSliders in JColorChooser
Philip Race
philip.race at oracle.com
Sun Aug 16 23:55:04 UTC 2020
+1
-phil.
On 8/15/20, 12:16 PM, Pankaj Bansal wrote:
>
> Hello Phil,
>
> Due to the changes in comments for functions during CSR review, a new
> webrev is created. This version only has changes in comments in
> constructor and stateChanged methods. Everything else is same as
> previous version webrev02.
>
> webrev: http://cr.openjdk.java.net/~pbansal/8239137/webrev03/
> <http://cr.openjdk.java.net/%7Epbansal/8239137/webrev03/>
>
>
> PS: In CSR comment for stateChanged function, the NullPointerException
> was changed to {@code NullPointerException}, but it gives build error
> given below. I saw in other files, the Exception is without the
> {@code} tag after @throws. Also, I have added the {@code} around null
> in comment.
>
> Build Error:
>
> client/open/src/java.desktop/share/classes/javax/swing/JSlider.java:1447:
> error: unexpected text
> * @throws {@code NullPointerException} if the parameter is null
> 1 error
>
>
> Regards,
>
> Pankaj
>
>
> On 04/08/20 11:38 AM, Pankaj Bansal wrote:
>> Hello Sergey,
>>
>> I have created the CSR. Please have a look.
>>
>> https://bugs.openjdk.java.net/browse/JDK-8251002
>>
>> Regards,
>>
>> Pankaj
>>
>>
>> On 28/07/20 6:08 AM, Sergey Bylokhov wrote:
>>> Looks fine. Please note you will need a CSR for this change.
>>>
>>> On 19.07.2020 11:28, Pankaj Bansal wrote:
>>>> Hi All,
>>>>
>>>> Please review the following fix for jdk16.
>>>>
>>>> Bug : https://bugs.openjdk.java.net/browse/JDK-8239137
>>>> webrev: http://cr.openjdk.java.net/~pbansal/8239137/webrev02/
>>>> <http://cr.openjdk.java.net/%7Epbansal/8239137/webrev02/>
>>>>
>>>> Issue: The JAWS does not announce the value of JSlider in
>>>> JColorChooser
>>>>
>>>> Cause: The JSlider and JSpinner are kept in Sync in JColorChooser
>>>> by changing the value of other component when one is used. eg, when
>>>> we change color value using JSlider, the JSpinner value is also
>>>> changed to keep the two in Sync. This results in two accessibility
>>>> value change events being sent to JAWS (one for JSlider and
>>>> JSpinner each) instead of just one for JSlider.
>>>>
>>>> The event in JSlider is being sent from setValue method, whereas in
>>>> case of JSpinner, the event is being sent from a AccessibleJSpinner
>>>> stateChanged method which is added as changeListener to JSpinner.
>>>> This results in situation where the event for JSpinner is always
>>>> being sent first whether we are using JSlider or JSpinner. It looks
>>>> like JAWS is not able to process all the events being sent quickly.
>>>> So, the JSlider event is not being processed properly by JAWS.
>>>>
>>>>
>>>> Fix: The fix is to add the AccessibleJSlider as a ChangeListener on
>>>> the JSlider and then sending the accesssiblity value change event
>>>> from there instead of sending it from setValue method like being
>>>> done in JSpinner. This results in the accessibility events being
>>>> sent to JAWS in the order they are being changed. JAWS is able to
>>>> announce the value properly for JSlider and JSpinner.
>>>>
>>>> This can be tested by running any JColorchooser sample program (One
>>>> such sample program is attached in JBS). I have run full jtreg and
>>>> jck tests on mach5. The change is not breaking any test. Links in JBS.
>>>>
>>>> Regards
>>>> Pankaj
>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/swing-dev/attachments/20200816/0d08d172/attachment.htm>
More information about the swing-dev
mailing list