RFR: 8284544: [Win] Name-Property of Spinner cannot be changed [v2]

Ambarish Rapte arapte at openjdk.org
Wed Nov 22 03:50:41 UTC 2023


> Currently we use the value of spinner as it's `UIA_NamePropertyId` when a11y client application requests for it.
> Ideally we should use the text set by `Node.setAccessibleText()` as the `UIA_NamePropertyId`.
> For other controls such as Slider, ListView we use the text set by setAccessibleText() API.
> 
> Fix:
> Use the text set by `Node.setAccessibleText()` as the `UIA_NamePropertyId`.
> This means, when a11y client requests `UIA_NamePropertyId`, which is mapped to AccessibleAttribute.TEXT attribute,  we shall return the accessible text.
> So we need another way to read out the VALUE of the Spinner.
> - For this we need to implement `IValueProvider` pattern for Spinner control
> - IValueProvider requests the value of the control using it's API `get_ValueString()`
> - It required to introduce a new AccessibleAttribute `VALUE_STRING`
> - IValueProvider  also reads out if the control is editable or not, hence added `EDITABLE `case in `Spinner.queryAccessibleAttribute()`
> 
> Verification:
> - Run any spinner app, with setAccessibleText set on spinner 
> - Run Windows narrator and observe
> - Without this fix:
> - 1. Narrator does not read the text set by setAccessibleText
> - 2. In application "Accessibility Insights for Windows", you can see the value of Spinner as the Name property
> - After this fix:
> - 1. Narrator reads the accessible text then value of Spinner and then if editable or not
> - 2. In application "Accessibility Insights for Windows", you can see the text set by `setAccessibleText()` for Spinner as the Name property and the Spinner's value as value property

Ambarish Rapte has updated the pull request incrementally with one additional commit since the last revision:

  add @since 22

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/1291/files
  - new: https://git.openjdk.org/jfx/pull/1291/files/39243a68..58bf6dd3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1291&range=01
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1291&range=00-01

  Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jfx/pull/1291.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1291/head:pull/1291

PR: https://git.openjdk.org/jfx/pull/1291


More information about the openjfx-dev mailing list