Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In a java application using swing, NVDA fails to read the current line with NVDA+up in a edit zone when the caret is at the bottom end #1892

Closed
nvaccessAuto opened this issue Nov 8, 2011 · 1 comment
Labels
Milestone

Comments

@nvaccessAuto
Copy link

Reported by QuentinC on 2011-11-08 19:57
In a java application using swing, NVDA fails to read the current line with NVDA+up when the cursor is at the bottom end. NVDA says "empty" instead of reading the current line of text. This happens in one-line text fields as well as when being at the last line of a multiline text area.

To reproduce the bug :

  1. Start whatever java swing application
  2. Focus whatever text field or text area in that application
  3. Make the zone empty if needed, then type some text
  4. The cursor is now at the end of the line, the last one if the zone allows multiple lines. If it is not the case go to the bottom end.
  5. Press NVDA+up. NVDA says "empty" instead of reading the current line. This is the bug.
  6. Move the cursor around with arrow keys such that the cursor is not at the bottom end anymore
  7. Press NVDA+up again. Notice that in this case, NVDA actually read the current line. The bug happens only when being at the bottom end.

Additionnally, notice that NVDA says one ore more random letters (often "n") instead of saying "empty" when pressing insert+up in a empty text field.

Here is my configuration when noticed the bug :
NVDA 2011.3 beta, localized to french
Windows 7 32 bits, in french
Java JDK 1.6 update 24
Access bridge 2.0.1

I also noticed that same bug on windows XP.

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2012-05-01 09:37
I've fixed the issue with reporting of random characters (I saw "n" too) in 1339081. The other part of the issue is fixed in 7ef99c3.
Changes:
Milestone changed from None to 2012.2
State: closed

@nvaccessAuto nvaccessAuto added this to the 2012.2 milestone Nov 10, 2015
seanbudd pushed a commit that referenced this issue May 20, 2024
…ridge (#16568)

Fixes #9376.

Summary of the issue:
In applications using Java Access Bridge, if the last line of a text is an empty line, then NVDA reads the previous line as the last line.

Description of user facing changes
NVDA will now correctly read the last empty line as "blank".

Description of development approach
The issue is related to fixes of #1892 in 7ef99c3, which work around the line bounds returned by JAB for the last character of a text. Specifically, the current behavior is to get the line bounds of the previous character, which works well for single-line text inputs. But if the text is multi-line, and we're on the last empty line, then getting the line bounds of the previous character results in repeating the penultimate line.

The fix is to separately handle the case of empty last line, which is determined by having "\n" as the previous character.
seanbudd pushed a commit that referenced this issue May 20, 2024
…ridge (#16568)

Fixes #9376.

Summary of the issue:
In applications using Java Access Bridge, if the last line of a text is an empty line, then NVDA reads the previous line as the last line.

Description of user facing changes
NVDA will now correctly read the last empty line as "blank".

Description of development approach
The issue is related to fixes of #1892 in 7ef99c3, which work around the line bounds returned by JAB for the last character of a text. Specifically, the current behavior is to get the line bounds of the previous character, which works well for single-line text inputs. But if the text is multi-line, and we're on the last empty line, then getting the line bounds of the previous character results in repeating the penultimate line.

The fix is to separately handle the case of empty last line, which is determined by having "\n" as the previous character.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant