On Wed, 5 Jul 2023 09:43:12 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:
>>> And this seems to be the problem. The getAccessibleName method should be on >>> JComboBox, or its editor, which should return the result of >>> getAccessibleName of the renderer component. >> >> Since the a11y APIs are called upon the `AquaComboBoxButton` (subclass of >> JButton) instance, need to set the text of the button to current displayed >> text of JComboBox. JComboBox contains `getAccessibleName` method but it is >> not invoked. >> >>> Does this work with editable combo box? >> >> Yeah, it worked for editable JComboBox. For editable JComboBox, the string >> is returned by NavigableTextAccessibility and it returns the current text >> displayed in editor. > > Accessible name is set by getting the current text displayed in JComboBox > (using `renderer getText()` method) in stead of setting it by JComboBox > `getSelectedItem().toString() `method. Tested with custom renderer and it > shows the magnified text as displayed in JComboBox. > > And this seems to be the problem. The getAccessibleName method should be on > > JComboBox, or its editor, which should return the result of > > getAccessibleName of the renderer component. > > Since the a11y APIs are called upon the `AquaComboBoxButton` (subclass of > JButton) instance, need to set the text of the button to current displayed > text of JComboBox. JComboBox contains `getAccessibleName` method but it is > not invoked. This is weird. I expect the accessibility API is called on the `JComboBox` in both cases where it's editable or not. Could this be a bug? Should we fix it in a different way? > > Does this work with editable combo box? > > Yeah, it worked for editable JComboBox. For editable JComboBox, the string is > returned by NavigableTextAccessibility and it returns the current text > displayed in editor. That's good. And it makes me wonder why non-editable combo box behaves so differently. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14497#discussion_r1253045504