Bug 514922 - Proposal: Plugin that improves the Java editors accessibility for visually impaired users
Summary: Proposal: Plugin that improves the Java editors accessibility for visually im...
Status: ASSIGNED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 4.6   Edit
Hardware: All All
: P3 enhancement with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: JDT-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: accessibility
Depends on:
Blocks:
 
Reported: 2017-04-07 06:26 EDT by Jann Schneider CLA
Modified: 2017-05-05 09:47 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jann Schneider CLA 2017-04-07 06:26:29 EDT
I just want to let you know of a plugin i created that improoves the java editors accessibility for visually impaired users. Also i want to ask if you think this plugin would be helpful for more users. 
As a blind user i'm not able to use the information provided by the ruler next to the java editor such as error / warning markers or occurences etc.. That's why i decided to create this plugin that provides the markers of the current editor in a kind of quick outline view. It just searches the editor for markers and opens a pop up displaying a categorized tree with the found items. Currently it displays Errors, warnings, occurences, tasks (todo and fixme) and search results. Furthermore the description of the item is available like the line number and the error description for example. From this pop up it is possible to press enter at an item to get to its location in the editor. If you do that the matching section will be selected in the editor so the tooltip information could easily be read by pressing F2. 

This plugin is hosted at github: https://github.com/nblix/overviewruler
It currently works for Eclipse versions from Luna to Oxygen. There are the related update sites available at https://nblix.github.io/. 
I'm using it on Linux and Mac OS but i believe it should work on windows platforms, too.
Comment 1 Dani Megert CLA 2017-04-28 10:47:33 EDT
Hi Jann. Thanks for doing this and sorry for the late reply.

The update site https://nblix.github.io/ does not seem to work. I get "Could not find https://nblix.github.io/".
Cloning the repository worked fine but importing 'com.ssn.quickoverviewruler' does not work well since the .classpath file is missing and the project is neither a Java nor Plug-in project. I will attach a patch to fix that.

I like the idea and I can imagine that it can be helpful. It's a good initial prototype, and if all the issues get resolved we can adopt it in the platform (JDT UI for a start). Did you get feedback from other blind users?

I did not look at the code but only at the functionality on Windows 7. Here's my initial feedback:
- The name is not good, especially since it does not only show the annotations that are configured to be show in the Overview Ruler. We could call it 'Quick Annotations'. We can later decide whether we need to be able to configure what's shown in there. Probably we will have to do that.
- This feature will also be useful in other textual editors, but I'm fine to first try it out in JDT UI to get feedback.
- It needs to be polished, e.g. icons needs to be shown for the annotation type and for the Java elements..
- Users probably also want to be able to sort the annotations by line number.
- Does it work well with a screen reader? Sorry, I did not test that item.
- Adding an 'Accessibility' menu is a no go. We could add a hint to the 'Accessibility' preference page
- You can't use Ctrl+K (already used).
Comment 2 Dani Megert CLA 2017-04-28 11:13:27 EDT
(In reply to Dani Megert from comment #1)
> importing 'com.ssn.quickoverviewruler' does not work well since the .classpath
> file is missing and the project is neither a Java nor Plug-in project. I will 
> attach a patch to fix that.

You can import the project using defaults. This creates the .classpath file. Then select the project > context menu > Configure > Convert to Plug-in Projects...

After that, first remove
.classpath
.project
from the root .gitignore file, then commit .project and .classpath.
Comment 3 Dani Megert CLA 2017-05-01 12:00:05 EDT
Jann, did you try to use Navigate > Next/Previous Annotation (Ctrl+./,)? This should help. And you can configure to which annotations you can navigate on the Annotations preference page.
Comment 4 Markus Duft CLA 2017-05-02 02:32:38 EDT
Hey. May I hook in also a little :)

(In reply to Dani Megert from comment #3)
> Jann, did you try to use Navigate > Next/Previous Annotation (Ctrl+./,)?
> This should help. And you can configure to which annotations you can
> navigate on the Annotations preference page.

How would a visually impaired user then know what the heck is going on at that location? If there is a warning, an error or just a TODO...? One cannot tell without hovering the little marker on the ruler, or is there another way to get the information in a textual way?
Comment 5 Jann Schneider CLA 2017-05-02 06:01:55 EDT
- update site: 
Yes indeed the update site url was wrong, it just missed the trailing latest/ so the proper one (for neon and oxygen) is https://nblix.github.io/latest/
- name: of course we can find another and maybe better name. 
- Project files: I'm just using maven in combination with Tyco to build these plugins. Therefore you can use maven as well to generate the eclipse specific files. I didn't push them to GitHub bc I'm not quite sure if there are any platform dependent sections included in these files. You might want to use something like this in order to generate the files: 
$ mvn eclipse:clean eclipse:eclipse 
- Editor support: yes I agree, this might be useful in other editors as well. As you already mentioned I just wanted to restrict the plugin to the java editor for the first variants of the feature. 
- Feedback: yes I received some feedback from other blind users. They told me this feature is quite helpful and increases productivity for them like it does for me :-) 
- Prev. next Annotations vs Overviewruler feature: what I like about the overview feature is the tree representation of the found markers of the current java editor. This lets me just pick the category I'm currently interested in like "Errors" or "Warnings" or "Occurrences" etc. and expand it to find the items detected in the editor. Furthermore it displays the related hints as well. Currently the items are separated in the various supported groups of markers and inside the groups sorted by line number.
Comment 6 Dani Megert CLA 2017-05-05 05:11:47 EDT
(In reply to Markus Duft from comment #4)
> Hey. May I hook in also a little :)
> 
> (In reply to Dani Megert from comment #3)
> > Jann, did you try to use Navigate > Next/Previous Annotation (Ctrl+./,)?
> > This should help. And you can configure to which annotations you can
> > navigate on the Annotations preference page.
> 
> How would a visually impaired user then know what the heck is going on at
> that location? If there is a warning, an error or just a TODO...? One cannot
> tell without hovering the little marker on the ruler, or is there another
> way to get the information in a textual way?

See http://help.eclipse.org/neon/topic/org.eclipse.platform.doc.user/concepts/accessibility/text_editor.htm
Comment 7 Dani Megert CLA 2017-05-05 05:14:26 EDT
I suggest you polish it and then make it available on the Eclipse Marketplace. If it gets enough users and positive feedback we can discuss putting it into JDT.
Comment 8 Jann Schneider CLA 2017-05-05 07:18:57 EDT
Well, this is a quite good idea. But unfortunately the market place client is completely inaccessible on Linux and Mac OS (not sure about windows). When I launch it on Linux I can't read anything but a couple of "install" buttons. When I launch it on Mac OS Eclipse crashes completely. Maybe the MacOS symptom is because VoiceOver is running, however i have never been able to install anything from the market place and I guess other blind hackers would face the same problems... 
But as a kind of first step I could publish some information about this bug to accessibility related forums just to see if we get any further feedback ... ?
Comment 9 Dani Megert CLA 2017-05-05 07:42:35 EDT
(In reply to Jann Schneider from comment #8)
> Well, this is a quite good idea. But unfortunately the market place client
> is completely inaccessible on Linux and Mac OS (not sure about windows).
> When I launch it on Linux I can't read anything but a couple of "install"
> buttons. When I launch it on Mac OS Eclipse crashes completely. Maybe the
> MacOS symptom is because VoiceOver is running, however i have never been
> able to install anything from the market place and I guess other blind
> hackers would face the same problems... 

Please make sure that there are bugs for those issues.


> But as a kind of first step I could publish some information about this bug
> to accessibility related forums just to see if we get any further feedback
> ... ?

Yes, that's fine too.
Comment 10 Michał Zegan CLA 2017-05-05 09:03:22 EDT
I like next/previous annotation thing. however there are probably things in the editor that I cannot use but don't know about them and don't regret because of that fact. Anyway, annotation overview like that would be useful for example if I only care about errors in the single editor window, as I often do. It would be faster than switching to problems view
Comment 11 Dani Megert CLA 2017-05-05 09:23:44 EDT
(In reply to Michał Zegan from comment #10)
> I like next/previous annotation thing. however there are probably things in
> the editor that I cannot use but don't know about them and don't regret
> because of that fact. Anyway, annotation overview like that would be useful
> for example if I only care about errors in the single editor window, as I
> often do. It would be faster than switching to problems view

If you only care about errors you can configure to only show error annotations in the editor. See http://help.eclipse.org/neon/topic/org.eclipse.platform.doc.user/concepts/accessibility/text_editor.htm for details.
Comment 12 Michał Zegan CLA 2017-05-05 09:36:00 EDT
well, but maybe I care about warnings as lower priority for example. so I need both, but errors first. :)
Comment 13 Dani Megert CLA 2017-05-05 09:47:45 EDT
(In reply to Michał Zegan from comment #12)
> well, but maybe I care about warnings as lower priority for example. so I
> need both, but errors first. :)

Sure, you can also enable Warnings. But there's currently no preference to iterate over a specific annotation type first.