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