On Thu, 28 Jul 2022 15:01:34 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

> When using the Windows Narrator screen reader on a Hi-DPI screen, the visible 
> focus is drawn in the wrong location and with the wrong size. This happens 
> because the the JavaFX Windows accessibility code that returns the screen 
> bounds of the requested UI element does not take the screen scale into 
> account.
> 
> The fix is to adjust the bounds by the screen scale before returning it.
> 
> You can test it on a Windows machine with scaling set to >= 125% as follows:
> 1. Turn on Windows Narrator
> 2. Run any JavaFX program with at least UI controls, for example, 
> `hello.HelloTextField` in `apps/toys/Hello`
> 3. TAB between the controls
> 
> Without the fix, Narrator shows the focus indicator in the wrong position and 
> is too small. With the fix, it is correct. While testing this, I discovered 
> an unrelated (and preexisting) bug where the focus indicator for a TextField 
> or TextArea whose content is larger that the control (and is displayed with 
> scroll bars) is not clipped to the visible area. This happens regardless of 
> screen scale. I will file a follow-up bug for this.
> 
> Note that this bug is specific to Windows. It does not occur on macOS, which 
> works correctly on a retina or non-retina display.

I tested this on Windows with 100%, 125%. 150% and 175% scales. I confirm that 
this fixes the focus rendering problem seen with the screen reader being ON.

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

Marked as reviewed by aghaisas (Reviewer).

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

Reply via email to