Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 39600

Summary: [misc] Java editor does not read lines in JAWS 4.5
Product: [Eclipse Project] JDT Reporter: Tod Creasey <Tod_Creasey>
Component: TextAssignee: Tom Hofmann <eclipse>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P2 CC: dipalerm, Kevin_Haaland, luca.davanzo, matt, vilmar
Version: 2.1Keywords: accessibility
Target Milestone: 3.0 M9   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on: 39205    
Bug Blocks:    

Description Tod Creasey CLA 2003-07-03 10:29:18 EDT
3.0 M1

There has been a change in the Java editor since version 2.1.1 that now 
confuses the JAWS screen reader. It no longer gives the contents of each line 
but now says "begin" only.

STEPS
1) Start JAWS 4.5
2) Open a Java Editor
3) Use the arrow keys to read each line

In version 2.1.1 this works fine but not in 3.0 M1. Please note that Ialso 
tried this with the Window Eyes screen reader and it had no problem so I 
suspect it is related to the screen scraping algorithm JAWS uses.
Comment 1 Tod Creasey CLA 2003-07-03 10:30:36 EDT
This does not occur in the regular text editor which works fine.
Comment 2 jose vilmar estacio de souza CLA 2003-07-12 17:25:23 EDT
this problem also happens using jaws 4.02.52
Comment 3 Luca Davanzo CLA 2003-07-21 08:21:37 EDT
I confirm this bug: any version of jaws from 3.7 to 4.51 doesnt work with java 
editor in eclipse 3 m1 and m2
Comment 4 Luca Davanzo CLA 2003-09-02 05:35:11 EDT
Problem with java editor and jaws (all versions)  still occurs in build 3.0 m3
Comment 5 Frank DiPalermo CLA 2004-01-19 08:58:22 EST
Work Around for this Bug.
I find that this bug is caused by the fact that the cursor in the Java editor 
is a left bracket.  That is a bit too wide for JAWS to recognize by default.  
Use the following procedure to temporarily fix this:
1. While in Eclipse, press Insert+6 on the keyboard to open the configuration 
manager with the Eclipse config file.
2. Press Alt+S to open the settings menu.
3. Press C to open the cursor settings.
4. Tab to the Vertical Caret Maximum Width setting and change it from 3 to 5.
5. Press Alt+F4 to close the Configuration Manager and answer Yes to saving the 
file.
This is a temporary fix.  We now need to look into why JAWS does not know the 
position of the cursor directly instead of using the backup of looking for a 
blinking caret.
Frank DiPalermo
512 917-0534
dipalerm@us.ibm.com
Comment 6 Dani Megert CLA 2004-01-19 10:01:58 EST
So, can we conclude that the error is with JAWS only recognizing standard (i.e.
line or block) carets?
Comment 7 Frank DiPalermo CLA 2004-01-19 11:58:52 EST
Yes, I guess you could say that, but I still think we need more analysis into 
whether JAWS should be able to find this caret position directly.
Frank
Comment 8 Luca Davanzo CLA 2004-01-20 09:36:00 EST
Ok, this workaround is quite useful, however jaws cursor tracking is often 
inaccurate: arrowing with left&/right arrows jaws  ofte skips some characters 
or detect spaces where in fact there are not.. So one can never be sure of the 
correctness of what you hear...
Using jaws 4.02 with windows nt 4.0 and windows  2000
Comment 9 Frank DiPalermo CLA 2004-01-20 09:55:11 EST
Luca,
I do not have that same behavior here.  I have JAWS 4.51 and 5.0 loaded.  Both 
seem fine.  I am currently running Eclipse 20031218.  Your description sounds 
similar to that in bug #42623.  This behavior is often caused by the cursor not 
blinking fast when JAWS is using the blink of the caret to find it as it seems 
to be doing here.  It would be interesting to know:
1. What version of Eclipse you have?
2. Is the cursor blinking fast in your editor?
Comment 10 Carolyn MacLeod CLA 2004-01-21 10:51:32 EST
*** Bug 42623 has been marked as a duplicate of this bug. ***
Comment 11 Luca Davanzo CLA 2004-01-21 15:43:47 EST
I am using  eclipse 3.0 m6 (last available build); jaws 4.02 and below are the 
only version that  works (higher version crash eclipse as bug 36493)
Still, I  find that sometimes some characters are skipped or are not shonw in 
Braille, some other time  my Braille displays shows spaces between character 
where actually there are not; refreshing  the screen with alt+Esc (jaws 
command) some times soleve the issue, some times not; I set in Jaws Config > 
Settings >Cursor  vertical width to 4 and changed (increased) cursor blinking 
rate but  with no effect.
Actually I have to say that this problems is shown more in Braille than speech, 
maybe this is the reason you didint experience this defect?
Comment 12 Frank DiPalermo CLA 2004-01-21 16:25:29 EST
A few additional comments from some more testing:
1. It seems that the cursor work around is not effective with font sizes 
smaller than 10 point which is the default.  Moving by character in smaller 
fonts, produces incorrect responses.
2. Apparently the shape of the Java editor cursor changed between 20030528 and 
the current build.  It used to be a vertical bar which worked OK with JAWS and 
now it is a left bracket that does not.
3. I have not looked at all this in Braille, but I will in the next couple of 
days.
Comment 13 Dani Megert CLA 2004-01-22 04:08:33 EST
You can verify whether the problem is caused by the caret by changing from the
Smart Insert mode (i.e. [ caret) to non-smart insert mode which has the old
caret. This is done either by pressing the Insert key twice or by twice clicking
on [Smart Insert] field in the status bar. If you do this only once you get into
the Overwrite mode (indicated via block caret).

>That is a bit too wide for JAWS to recognize by default.  
What about the block caret? This is even wider.
Comment 14 Frank DiPalermo CLA 2004-01-22 09:07:23 EST
Yes, JAWS recognizes the "not smart" cursor with its default settings.  It also 
seems to solve the problems with small editors too.  I could not find mention 
of these functions in the online help.  What functions does a user lose when he 
is not using the smart cursor?
The block cursor is not recognized by JAWS. 
Comment 15 Dani Megert CLA 2004-01-22 09:25:27 EST
>What functions does a user lose when he is not using the smart cursor?
Almost everything ;-) e.g. most of the stuff mentioned on the Java > Editor >
Typing page.

>The block cursor is not recognized by JAWS.
This means users who use overwrite mode can't do this in combination with JAWS,
right?
Comment 16 Frank DiPalermo CLA 2004-01-22 09:30:15 EST
Sorry for my ignorance of Eclipse, but I do not understand what you mean by the 
Java > Editor > Typing Page.
It has been my experience that most users who are blind never use overtype 
mode.  Perhaps Matt might like to comment on that. 
Comment 17 Dani Megert CLA 2004-01-22 09:54:49 EST
No Problem.

1. On main menu bar: Window > Preferences
2. Expand Java node
3. Select node "Editor"
4. Click on Typing tab
Comment 18 Matthew King CLA 2004-01-22 12:04:03 EST
1. Smart typing is essential function; we cannot give that up to have cursor 
tracking.

2. Use of overtype by most people is rare, but more rare for blind users 
because they have a hard time knowhing what they are about to type over unless 
they are simultaneously using braille. Even then, I find it difficult to type 
and follow along in braille because you are constantly moving hands between 
display and keyboard. The only environment In which I have regularly used 
overtype is terminal emulation (it is essential there).

3. We need reliable cursor tracking regardless of font setting. This is not 
possible with the JAWS configuration change described by Frank.

4. We do not yet know if this is standard JAWS behavior (shortcoming) or unique 
to Eclipse. It is well-known that you have to change the cursor in some 
applications to get JAWS to track it. This is to say that even if it is a JAWS 
shortcoming or limitation by design (of their video driver or related 
technology), we may have to provide some optional JAWS trackable cursor options 
in Eclipse. The other possibility is that there may be something that can be 
done in Eclipse to get JAWS (and possibly other screen readers too) to use a 
different more reliable way of tracking the cursor. 

5. If this is a JAWS shortcoming, even if we had dedicated support at inside 
Freedom Scientific, it will not be quickly resolved because cursor tracking by 
a screen reader is such a core function (and one constantly plagued by the 
unexpected). Thus I think it expedient and prudent to include some means for 
providing optional cursors right now in the 3.0 stream. JAWS can easily track 2 
kinds: blinking vertical bars and blinking underlines. Without such options, 
JAWS users are stuck at the 5/28/03 build of Eclipse or they must deal with 
such unreliable cursor tracking as to make productive work almost impossible. 
If we wait on what we can get done at FS, we will very likely be waiting many 
months past the release of 3.0.
Comment 19 Dani Megert CLA 2004-01-23 04:13:02 EST
We should think about using the underline caret instead of [ given the fact that
we already have PRS against [ from non-blind users (see bug 39205).
Comment 20 Carolyn MacLeod CLA 2004-02-11 17:33:33 EST
This bug is fixed in JAWS 5.00.809.
To upgrade, see the final comment from Frank DiPalermo in bug 36493.
Closing this bug report.
Comment 21 Matthew King CLA 2004-02-12 08:57:45 EST
This bug is definitely not fixed. Crashing, performance and menu reading are 
fixed. But this bug is not effected by JAWS 5.0.809.
Comment 22 Carolyn MacLeod CLA 2004-02-12 10:29:47 EST
Actually, it honestly works for me with JAWS 5.0.809 and Eclipse build 
200402102000 - did we change something in this build, perhaps? Tod?

My Vertical Caret Maximum Width in JAWS is set at 3.
I seem to have all of the "Smart cursor" options turned on.
Overwrite typing is not disabled or anything.
So I don't think I have any of the workarounds running.

Is there anything else I can check to see why this is working?
Comment 23 Tod Creasey CLA 2004-02-12 10:34:15 EST
Not sure - I don't work on the editors. I am going to look over this post M7 - 
there has been a lot of progress in M7 on a number of items in Eclipse.
Comment 24 Dani Megert CLA 2004-02-12 10:43:43 EST
>I seem to have all of the "Smart cursor" options turned on.
If enabled you see a [ shape caret.

We didn't change code related to the caret recently. Maybe SWT (StyledText) did?
Comment 25 jose vilmar estacio de souza CLA 2004-02-16 02:14:34 EST
I tried m7 and jaws 5.00.812 with no luck. Jaws doesn't recognize cursor when 
smart insert mode is 
on.
Comment 26 Carolyn MacLeod CLA 2004-02-17 15:22:16 EST
Very sorry everyone - my error. I forgot that there are TWO configuration 
files for JAWS - one that is application-specific (i.e. type INS+F2 when 
eclipse has focus), and one that is global (i.e. JAWS-specific... type INS+F2 
when JAWS has focus). I just checked BOTH configuration files, and I see that 
the eclipse-specific one has the cursor width set to 5. When I put that back 
to the default of 3 pixels, JAWS did not read anything in the Java editor - 
which is what all of you have been experiencing. Sorry to confuse the issue. I 
hope I didn't waste anyone's time.

I have talked to Kai (who is responsible for the [ smart insert cursor) about 
this problem, and here is what he said:
"For M8 we will revisit the caret shape. The smart mode might go back to the 
normal caret shape. I'll come back to you when this will happen to ensure that 
screen readers are satisfied with the solution."
Comment 27 Dani Megert CLA 2004-02-18 03:42:08 EST
I didn't use JAWS so far so please forgive me if this sounds stupid: couldn't we
ship an eclipse-specific configuration file that has the cursor width set to 5?
As mentioned in comment 22 this seems to fix the problem.
Comment 28 Matthew King CLA 2004-02-18 13:17:51 EST
This cursor width setting is in the JAWS configuration not Eclipse. Shipping 
JAWS configs, Window-Eyes confis, etc., is not a good path to go down for a 
variety of reason. Besides, it doesn't really fix the problem; it just changes 
its nature. Even with the cursor width setting changed in JAWS, JAWS still 
sometimes reports blanks where there are not blanks and still cannot handle 
smaller than 10 point font. I don't know if Window-Eyes has the same ability to 
change the cursor width for which it is looking.
Comment 29 Kai-Uwe Maetzel CLA 2004-03-31 04:58:31 EST
We will change the cursor of the smart insert mode to the default caret. We 
intent to change the default caret width to be 2 pixels rather than 1. Does 
this cause any problem with JAWS? We will also provide an option to always use 
the default caret independent from the mode you are in.
Comment 30 Frank DiPalermo CLA 2004-03-31 08:00:42 EST
A caret that is two pixels wide should be OK, so long as it does not infringe 
on the character's pixel box.  I assume that it would change size as the font 
changes?  Also, you might be careful of a two pixel caret and the character 
pixel box with very small fonts.
Comment 31 Tom Hofmann CLA 2004-04-01 04:28:17 EST
see bug 39205
Comment 32 Tom Hofmann CLA 2004-04-01 10:05:50 EST
fixed > 20040401

- caret for smart mode (default) is standard ibeam
- a special caret will only be shown in overwrite mode and raw (dumb) mode
- special carets will be disableable for accessibility
- by default the caret is two pixels wide, but this can be disabled
Comment 33 Frank DiPalermo CLA 2004-04-08 09:17:54 EDT
I have just downloaded and installed build 200404060800 and find the following 
cursor implementation:
The default Java Editor is 2 pixels wide.  JAWS works just fine with it.
There are two settings in the Java Editor preferences:
A checkbox that says use only standard caret.  The default is unchecked.
A checkbox that says enable thick caret.  The default is checked.
I unchecked the thick caret setting and found the normal vertical bar caret.  
It works fine with JAWS too.  
Then I changed the Java Editor font to a 5 point Terminal font.  JAWS still 
read everything just fine, even with the two pixel caret.  I also noted that 
the size of the caret changed on the fly with the size of the font, so that's 
fixed too.
Comment 34 Tom Hofmann CLA 2004-04-08 09:45:53 EDT
Excellent - thanks for the feedback, Frank.
Comment 35 Tod Creasey CLA 2004-05-20 10:35:46 EDT
Verified using JAWS 5.0 and build 20040520