This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 163902 - Java Completion Excluder is not accessible
Summary: Java Completion Excluder is not accessible
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Editor (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Max Sauer
URL:
Keywords: A11Y, NETFIX, SIMPLEFIX
Depends on: 125060
Blocks:
  Show dependency tree
 
Reported: 2009-04-28 12:58 UTC by Jiri Prox
Modified: 2009-05-12 07:47 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jiri Prox 2009-04-28 12:58:59 UTC
Product Version: NetBeans IDE Dev (Build 200904261401)
Java: 1.6.0_13; Java HotSpot(TM) Client VM 11.3-b02
System: Linux version 2.6.24-23-generic running on i386; UTF-8; en_US (nb)


Java Completion Excluder is not accessible, there are missing accessible descriptions and mnemonics

===============================================
 Tested Window title : Java Completion Excluder
===============================================

Results of Accessibility test


 Doesn't implement Accessible :
   - none.

 No Accessible name :
   Class: javax.swing.JTable {  |  } 


 No Accessible description :
   Class: javax.swing.JButton {  Add |  } 
   Class: javax.swing.JButton {  Close |  } 
   Class: javax.swing.JButton {  Remove |  } 
   Class: javax.swing.JFrame {  Java Completion Excluder |  } 
   Class: javax.swing.JTabbedPane {  Exclude |  } 
   Class: javax.swing.JTable {  |  } 


 Label with LABEL_FOR not set :
   - none.

 Components with no LABEL_FOR pointing to it :
   Class: javax.swing.JTabbedPane {  Exclude |  } 
   Class: javax.swing.JTable {  |  } 


 Components with no mnemonic :
   Class: javax.swing.JButton {  Add |  } 
   Class: javax.swing.JButton {  Close |  } 
   Class: javax.swing.JButton {  Remove |  } 


 Components with wrong mnemonic (mnemonic isn't ASCII , label doesn't contain mnemonic):
   - none.

 Components not reachable with tab traversal :
   - none.
Comment 1 Vitezslav Stejskal 2009-05-04 10:37:11 UTC
Jirko, what exactly is Java Completion Excluder? How can I get to this panel/dialog/UI in the IDE? Thanks
Comment 2 Jiri Prox 2009-05-04 10:45:53 UTC
It's dialog where you can exclude some packages/classes from code completion. it can be found in Options Dialog ->
Editor -> Code Completion -> Language Java -> button Exclude
Comment 3 David Strupl 2009-05-04 14:19:18 UTC
I am assigning to the author of the feature --- see Issue 125060.

The problems are in class org.netbeans.modules.java.editor.options.CodeCompletionPanel

There are 2 problems with the UI:

  1. Asi this bug indicates it is not accessible and that can be fixed by
      a. adding accessible descriptions to the components similarly to this (pasted from other source, might be
generated by the form editor (I am not sure about how to do that exactly))
       
fieldsCheckBox.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(MarkOccurencesPanel.class,
"ACSD_Fields_CB")); // NOI18N

     b. adding proper mnemonics to the buttons
     c. add proper labels for some of the ui elements with label for correctly set ...

  2. Maybe even more important than the above: why on earth is the following in the code

        javaCompletionExcluderFrame.setAlwaysOnTop(true);
        javaCompletionExcluderFrame.setMinimumSize(new java.awt.Dimension(409, 233));
        javaCompletionExcluderFrame.setUndecorated(true);

     Has anyone tried e.g. to move the options window while the javaCompletionExcluderFrame is visible? Why the button
for exclusion pattern does not simply invoke modal dialog allowing to set the pattern with the usual Ok/Cancel logic?

I am tempted to roll back the whole feature unless the second concern is somehow handled!
Comment 4 fommil 2009-05-04 14:25:18 UTC
This version of the UI is about a month old... issue 125060 is awaiting the application of a new patch which GREATLY enhances the UI. If you can apply 
patches, please try the latest patch and feedback on that.

The latest version does use setAlwaysOnTop(true), but I'm not against the idea of msauer removing it when it applies the latest patch.
Comment 5 fommil 2009-05-04 14:31:30 UTC
latest patch doesn't have accessibility descriptors... I'll submit an update in the next day or so to fix that.
Comment 6 fommil 2009-05-07 10:33:01 UTC
Latest patch to issue 125060 has accessible names. The previous patch already took a "modal" approach with JLists (rather than JTable) addressing other 
concerns in this report, but had not been applied when this issue was reported. I suggest turning the dependency list the other way (i.e. this depends on 
125060, not the other way round). We can then deal with further refinements here.

The current UI has 2 steps of "popouts". I'm not against the idea of making the Excluder panel integrated into the pane and only shown when necessary if you 
feel that would be better. The second popout offers the possibility of additional inline user-help (based on the java.hint Forbidden Package UI), which I feel is 
much more intuitive than the previous incarnation of this option panel. I hope you agree!

Please feedback here when you've seen the latest patch.
Comment 7 Max Sauer 2009-05-11 14:32:09 UTC
Fixed. Sam, please have a look at http://a11y.netbeans.org/ , there is a lot of information about accessibility and some tools for testing. I've integrated the 
tabbed pane directly into OD also.
---
http://hg.netbeans.org/jet-main/rev/1573083284ea

Comment 8 Quality Engineering 2009-05-12 07:47:41 UTC
Integrated into 'main-golden', will be available in build *200905120201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/1573083284ea
User: Max Sauer <msauer@netbeans.org>
Log: #163902: Java Completion Excluder is not accessible