On Thu, 9 Nov 2023 04:39:32 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:

>> The issue exist only for non-editable combobox and the root cause is 
>> accessible object is not created due to incorrect index returned from 
>> component class which results in no a11y API invoked.
>> 
>> Proposed solution is to return the correct accessible child from 
>> getAccessibleChild method which is AquaComboBoxButton (arrowButton) instance 
>> and that results in invoking the a11y APIs to return the current selected 
>> item in combobox. 
>> 
>> Further when the application comes up first time the accessible name is not 
>> set for current displayed item in JCombobox that is handled in 
>> AquaComboBoxButton which will take care for the current selected item as 
>> well as if user modifies the selection by drop-down list.
>> 
>> CI link is posted in JBS.
>
> Abhishek Kumar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix for custom renderer

Changes requested by aivanov (Reviewer).

src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxButton.java line 201:

> 199:     }
> 200: 
> 201:     final Component getRendererComponent() {

Suggestion:

    private Component getRendererComponent() {


I wanted to use this method in `AquaComboBoxUI` but eventually I added 
`updateAccessibleName` instead, thus this method can be made `private`.

src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java line 143:

> 141:             public void itemStateChanged(final ItemEvent e) {
> 142: 
> 143:                 if (e.getStateChange() != ItemEvent.SELECTED) return;

Suggestion:

            public void itemStateChanged(final ItemEvent e) {
                if (e.getStateChange() != ItemEvent.SELECTED) return;

The blank line at the start of the method isn't necessary, is it?

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 1:

> 1: /*

You can use HTML for instructions and builder pattern for configuring 
`PassFailJFrame` if you like. I'm just advertising new features.

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
31:

> 29:  * @requires (os.family == "mac")
> 30:  * @summary Verifies if JComboBox selected item magnifies using
> 31:  * screen magnifier a11y tool.

Suggestion:

 * @summary Verifies if item selected in JComboBox magnifies using
 *          screen magnifier a11y tool

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
48:

> 46:     private static JFrame frame;
> 47:     private static final String INSTRUCTIONS =
> 48:             "1) Enable Screen magnifier on the Mac \n\n" +

Suggestion:

            "1) Enable Screen magnifier on the Mac\n\n" +

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
52:

> 50:                 "Select \"Enable Hover Text\"\n\n" +
> 51:             "2) Move the mouse over the combobox selected item by 
> pressing  " +
> 52:                 "\"command\" button.\n\n" +

Suggestion:

            "2) Move the mouse over the combo box and press  " +
                ""Command" button.\n\n" +

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
53:

> 51:             "2) Move the mouse over the combobox selected item by 
> pressing  " +
> 52:                 "\"command\" button.\n\n" +
> 53:             "3) If magnified label is visible, Press Pass else Fail.";

Suggestion:

            "3) If magnified label is visible, press Pass else Fail.";

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
68:

> 66: 
> 67:         String[] fruits = new String[] {"Apple", "Orange",
> 68:                 "Mango", "Pine Apple", "Banana"};

Suggestion:

                "Mango", "Pineapple", "Banana"};

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
71:

> 69:         JComboBox<String> comboBox = new JComboBox<String>(fruits);
> 70:         JPanel fruitPanel = new JPanel(new GridLayout(1, 2));
> 71:         JLabel fruitLabel = new JLabel("Fruits : ", JLabel.CENTER);

Suggestion:

        JLabel fruitLabel = new JLabel("Fruits:", JLabel.CENTER);

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
75:

> 73:         fruitPanel.add(fruitLabel);
> 74:         fruitPanel.add(comboBox);
> 75:         comboBox.getAccessibleContext().setAccessibleName("Fruit 
> jCombobox");

Suggestion:

        comboBox.getAccessibleContext().setAccessibleName("Fruit Combo box");

test/jdk/javax/accessibility/JComboBox/TestJComboBoxScreenMagnifier.java line 
81:

> 79:         PassFailJFrame.positionTestWindow(frame,
> 80:                 PassFailJFrame.Position.HORIZONTAL);
> 81:         frame.setLocationRelativeTo(null);

Suggestion:


It's not needed, the location of the frame is set explicitly by the above call 
to `PassFailJFrame.positionTestWindow`.

test/jdk/javax/swing/JComboBox/6567433/UpdateUIRecursionTest.java line 1:

> 1: /*

You should update the copyright year.

I wonder if it makes sense to resolve warnings about raw classes.

-------------

PR Review: https://git.openjdk.org/jdk/pull/14497#pullrequestreview-1722830503
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388181016
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388182328
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388201084
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388185906
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388191437
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388193414
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388193775
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388190556
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388195249
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388188204
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388197459
PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1388204973

Reply via email to