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 157981 - [a11y] Keyboard support for diagram editing is unusable
Summary: [a11y] Keyboard support for diagram editing is unusable
Status: RESOLVED INCOMPLETE
Alias: None
Product: uml
Classification: Unclassified
Component: General (show other bugs)
Version: 6.x
Hardware: PC Windows XP
: P2 blocker (vote)
Assignee: issues@uml
URL:
Keywords: A11Y
Depends on:
Blocks:
 
Reported: 2009-02-05 11:15 UTC by matthies
Modified: 2009-05-25 21:06 UTC (History)
0 users

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 matthies 2009-02-05 11:15:12 UTC
I've tried to create a class diagram using the keyboard, but no luck, it's effectively impossible.
Comment 1 matthies 2009-02-05 11:16:02 UTC
Setting to P2 as per the Bug Priority Guidelines (http://wiki.netbeans.org/BugPriorityGuidelines, "Functionality 
available by mouse is not reachable by keyboard").
Comment 2 Sergey Petrov 2009-02-05 11:39:13 UTC
what actions you can't do with keyboard?
Comment 3 matthies 2009-02-05 13:08:15 UTC
It's probably easiest to see if you try yourself to create/edit a class (or other) diagram without touching the mouse. 
I think you'll see that you don't come very far.

Just a few examples:
- There seems to be no way to set or move keyboard focus between the Title, Attributes and Operations sections of a 
Class box.
- How does one create new elements using the keyboard? While it is possible (although tedious) to move keyboard focus 
to the Palette window and select something there, placing the new element in the diagram appears to be only possible 
with the mouse.
- The vertical menu of icons that appears beside an element when it has focus is not operable by keyboard.
- How can the endpoints of a connector be moved using the keyboard?
- How can keyboard focus be moved to the label box of a connector? 
- How can one move (displace) the label box of a connector using the keyboard? 
- How can an element be resized using the keyboard?
etc.

Not impossible, but tedious:
- The Tab key cycles through all elements and connectors, in order of creation of these objects or something similarly 
random. Being able to use the arrow (Cursor) keys for that would be a lot more convenient.
- Context menu entries don't have keyboard accelerators.
Comment 4 Sergey Petrov 2009-02-05 15:14:23 UTC
it's a lot of issues when one problem should be per one issue but anyway:
- There seems to be no way to set or move keyboard focus between the Title, Attributes and Operations sections of a 
Class box.
>: shidt - up/down
- How does one create new elements using the keyboard? While it is possible (although tedious) to move keyboard focus 
to the Palette window and select something there, placing the new element in the diagram appears to be only possible 
with the mouse.
>: ctrl - enter
- The vertical menu of icons that appears beside an element when it has focus is not operable by keyboard.
>: ctrl-P then arrows
- How can the endpoints of a connector be moved using the keyboard?
if it's about reconnection - no way, but always possible to delete, and recreate new connection, also just a corner
issue, not a p2, it may be better to disable it at all then implemet with keys.
- How can keyboard focus be moved to the label box of a connector? 
>: Shift - up/down
- How can one move (displace) the label box of a connector using the keyboard? 
>: Ctrl-Arrows
- How can an element be resized using the keyboard?
etc.
>: Shift-F10 => Set Dimensions

the main issue here I can't find these shortcuts in help.
Comment 5 matthies 2009-02-06 08:38:23 UTC
Ok, thanks, this already helps! Maybe we can use this Issue for discussing keyboard support in diagrams, or else take 
the discussion off the issue tracking system (but where to, is there an UML dev mailing list?). I think it makes more 
sense and is more efficient to first discuss this together in context rather than spread it across a dozen or more of 
separate issues. We then can create new issues from there.

Shift-up/down: Ok, although there is no indicator when the keyboard focus is on the class title (unless you take the 
icon bar as an indicator). Why isn't it simply up/down (without shift)? I'll add some more discussion about element 
content editing below.

Ctrl+Enter: Ok. It's still quite tedious, you have to do Ctrl+Shift+8 to move to the Palette window, then tab to the 
appropriate section, then use the cursor keys to move to the element then Ctrl+Enter. A more convenient way would be 
(for example) to have a "New" menu item in the context menu, with appropriate submenus or possibly a wizard like for 
New File; and a "repeat last creation" action. A "duplicate element" action might also be helpful.

Apropos duplicate: I tried copy&paste (Ctrl+C, Ctrl+V) on an element, but after Ctrl+V it seems you need to use the 
mouse to actually insert/place the copy.

Ctrl+P: Ok, I can move the focus through the icons, but how do I actuate an icon? Neither Space nor Enter seem to work.

Set Dimensions: Ok, but not very practical. Something like Alt+Space-S under Windows to resize a window would be more 
usable.

Now, with regard to editing element contents, it would be much more convenient if editing within elements behaved more 
like a text editor or word processor. By this I mean that there is no need to have to toggle the "is being edited" 
state of the items (title, attribute, operations etc.). Just like in a Java source editor, when you edit one method and 
then another, you don't have to exit edit mode of the one method, then move to the other method, then activate edit 
mode for the other method. Rather you simply move the cursor to the other method and start typing. Same with paragraphs 
or table rows in a word processor. It would greatly enhance usability and speed up diagram creation and maintenance if 
the contents of elements would behave in this fashion. For example when a class box has focus I would expect cursor-
up/down to move the cursor between title and the individual attributes and operations, and be able to instantly start 
typing (or backspacing/deleting etc.), without first having to press Return to "go into edit mode". Furthermore I would 
expect to be able to insert/add new attributes and operations simply by pressing enter to create a new line. I would 
expect to be able to cut, copy and paste these items within the element or between element. And I would expect 
Undo/Redo to work with all these editing operations. I suspect that even mouse-heavy users would love this.

In its current state, the diagram editor seems barely usable to me. I would love to work more with UML, but with 
diagram editing being so awkward, it's not very attractive. I know that other UML editors are not necessarily much 
better, but that's why I'm hoping that NetBeans would improve things.
Comment 6 Sergey Petrov 2009-02-06 10:37:35 UTC
see http://uml.netbeans.org/servlets/ProjectMailingListList for mailing lists.

it have no sense to "select" title, because if element is selected then enter will apply to edition of title.

in context palette icons activation woks the same way as in main palette (ctrl-enter for consistency)

to duplicate it's better to use select in model and Ctrl-Enter to place new instnce of an object, and it's the main
reason why ctrl-enter is used everywhere, because in project tree Enter works as Open.

there are a lot things to improve, but currently it may happens only with more contribution from community.