<AWT Dev> [14] RFR : 8226253 : JAWS reports wrong number of radio buttons when buttons are hidden.

Alexander Zuev alexander.zuev at oracle.com
Thu Mar 12 17:26:17 UTC 2020


Hi Ambarish,

   i tested some corner cases (dynamic combobox loading and some 
nonstandard keyboard navigation) and haven't found obvious issues with 
the fix so it's Ok with me.

/Alex

On 03-Mar-20 11:32, Ambarish Rapte wrote:
>
> Hi Alex,
>
> Here is a sample program that I used to test the fix.
>
> http://cr.openjdk.java.net/~arapte/a11y/8226253/TEST_JDK_8226253.java
>
> Regards,
>
> Ambarish
>
> *From:* Alexander Zuev
> *Sent:* Monday, March 2, 2020 10:15 PM
> *To:* awt-dev at openjdk.java.net
> *Subject:* Re: <AWT Dev> [14] RFR : 8226253 : JAWS reports wrong 
> number of radio buttons when buttons are hidden.
>
> Hi Ambarish,
>
>   new fix looks better. Quick question - is there any testcase (even 
> manual one) that i can use to play a bit with the fix?
> I would love to test the corner cases such as keyboard navigation 
> within the JCobmoBox popup.
>
> /Alex
>
> On 3/2/20 07:13, Ambarish Rapte wrote:
>
>     Hi Pankaj,
>
>     Please take a look at the updated fix:
>     http://cr.openjdk.java.net/~arapte/a11y/8226253/webrev.03
>
>     Changes in the webrev.03:
>
>      1. Addressed review comments given by Pankaj.
>      2. The fix suggested in webrev.01 had below two issues, both are
>         fixed in webrev.03.
>
>          1. Correct information of a component was not passed to
>             screen reader
>             when there are multiple invisible components are added to
>             a ButtonGroup.
>          2. An item of JComboBox which is not currently showing on
>             screen but
>             will be shown on next key press was not read by screen reader.
>
>     Regards,
>
>     Ambarish
>
>     *From:* Pankaj Bansal
>     *Sent:* Tuesday, October 1, 2019 9:55 PM
>     *To:* Ambarish Rapte <ambarish.rapte at oracle.com>
>     <mailto:ambarish.rapte at oracle.com>; awt-dev at openjdk.java.net
>     <mailto:awt-dev at openjdk.java.net>
>     *Subject:* RE: <AWT Dev> [14] RFR : 8226253 : JAWS reports wrong
>     number of radio buttons when buttons are hidden.
>
>     Hi Ambarish,
>
>     I have few observations
>
>     I think underscore (_) should be removed from newly added function
>     names as it is not there in any other function.
>
>     if (beforeIndex >= childrenCount) {
>
>     this check is not required inside else condition in
>     get_nonVisibleChildrenCountBeforeIndex(AccessibleContext parentAC,
>     int beforeIndex  as this case is being handled by the if part of loop.
>
>     You should be able to reuse
>     get_NonVisibleTargetCountBeforeIndex(Object[] targets, int
>     indexBefore) inside getAccessibleRelationTargetCount instead of
>     writing separate loop there.
>
>     || beforeIndex < 0
>
>     is added in if loop in
>     get_nonVisibleChildrenCountBeforeIndex(AccessibleContext parentAC,
>     int beforeIndex), but not added in
>     get_NonVisibleTargetCountBeforeIndex(Object[] targets, int
>     indexBefore) {. Is this intentional?
>
>     Regards,
>
>     Pankaj
>
>     *From:* Ambarish Rapte
>     *Sent:* Tuesday, September 10, 2019 11:30 PM
>     *To:* awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
>     *Subject:* <AWT Dev> [14] RFR : 8226253 : JAWS reports wrong
>     number of radio buttons when buttons are hidden.
>
>     Hi,
>
>     Please review this fix,
>
>     JBS: https://bugs.openjdk.java.net/browse/JDK-8226253
>
>     Webrev: http://cr.openjdk.java.net/~arapte/a11y/8226253/webrev.01/
>
>     Issue:
>
>     AccessibleContext.getAccessibleChildrenCount() returns number of
>     all Accessible children, but does not take visibility of a child
>     component in consideration.
>
>     Fix:
>
>     Do not consider children that are not showing when providing
>     accessible children count and when providing an accessible child
>     of the component to screen reader.
>
>     This change is needed for both AccessibleContext and
>     AccessibleRelationSet.
>
>     The newly added methods do not result in creating the
>     AccessibleContext of children components earlier than before the fix.
>
>     The AccessibleContext gets created in
>     AccessibilityEventMonitor.AccessibilityEventListener.installListeners(AccessibleContext)
>     method, which occurs before the newly added methods get executed.
>
>     Verification:
>
>     Tested the fix with JList with a custom AccessibleContext(custom
>     ListModel) to hide non visible components, JRadioButton,
>     JCheckBox, JToggleButton, JRadioButtonMenuItem, JCheckBoxMenuItem,
>     JComboBox and SwingSet2.
>
>     Did not find any misbehavior with the fix.
>
>     Some pointers provided by Sergey in offline discussion:
>
>     1. Fix the issue on Java Access Bridge side. =>
>     http://cr.openjdk.java.net/~arapte/a11y/8226253/webrev.01/
>
>     2. Confirm that the fix does not create the AccessibleContext of
>     children earlier than before the fix. => Does not happen
>
>     3. Test JList with a custom AccessibleContext. => Tested by adding
>     a custom ListModel to JList. JList.AccessibleJList uses the
>     ListModel for getAccessibleChildrenCount() and getAccessibleChild()
>
>     Regards,
>
>     Ambarish
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/awt-dev/attachments/20200312/b77ca1d3/attachment.htm>


More information about the awt-dev mailing list