Bug 60931

Summary: text-gui needs more visual cues for input focus
Product: [Retired] Red Hat Linux Reporter: Ed Halley <ed>
Component: newtAssignee: Eido Inoue <havill>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: katzj
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-01-04 19:06:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ed Halley 2002-03-09 16:01:28 UTC
Description of Problem:

This is not an RFE.  The kudzu tool is almost impossible to use on a serial
console connection without more visual cues.

The text-character oriented "gui" used by anaconda and kudzu depends solely on
screen colors to indicate which of several button fields currently have the
input focus.  This makes it impossible to determine which of several button
fields has input if screen colors are not available, such as over a ttyS0 serial
console connection to a headless server.

For example, if a dialog box in kudzu offers three buttons, "Keep", "Edit",
"Ignore", then the user cannot see which button is currently selected, and
cannot tell which button becomes selected on each Tab keypress.

How Reproducible:

Always reproduceable when running kudzu or other text-character oriented "gui"
tools across a serial console connection.

Additional Information:
	
As a recommendation, the text characters within the button and button frame
should change to indicate focus changes.  These visual changes would help
indicate the currently selected buttons without depending on colors.

More specifically, here are concrete suggestions.  A combination of these
suggestions is preferred to make a stronger and more robust visual indication of
selected fields on different hardware situations.

 (1) convert the text caption of the button to all-caps while selected:
        [ Keep ]     [ EDIT ]     [ Ignore ]
     (Note that this is only effective if the text captions are already
     defined with mixed-case.  This is typical, but not 100% predictable
     or enforced.)

 (2) change the frame characters to double-outlines or single-outlines
     while the button is selected.
        [ Keep ]     [[ Edit ]]     [ Ignore ]
     (Note this will still have a visible effect even when the IBM-style
     CGA frame outline characters are not available or not mapped by a
     serial console properly.  The characters will still change, which is
     enough to indicate a difference between buttons.  This change is
     less effective for dialogs with exactly two buttons but enhances the
     indication if combined with other visual cues.)

 (3) add stars, brackets, angles, or other characters to the whitespace
     that already exists inside the selected button
        [ Keep ]     [*Edit*]     [ Ignore ]
        [ Keep ]     [>Edit<]     [ Ignore ]
        [ Keep ]     [{Edit}]     [ Ignore ]
     (Note that if the colors are chosen well, this cue could be hidden
     on color-equipped displays but visible on color-lacking displays.
     For example, a blue-on-blue asterisk character would appear on the
     serial console, but be invisible on the normal IBM CGA color video
     output.  This trick would help preserve the current appearance on
     the typical IBM CGA color-equipped hardware, but still give the
     needed cue for other hardware cases.)

Please implement one or more of these suggestions, or other visual cues in the
same vein, so that buttons are visible on color-lacking displays such as serial
console.

Comment 1 Bill Nottingham 2002-03-09 19:05:06 UTC
kudzu uses standard newt widgets. Assigning there.

Comment 2 Eido Inoue 2003-01-04 19:06:25 UTC
Modified newt to properly work in monoschrome environments. This will affect all
text-based tools. To activate, define the env var NEWT_MONO (only necessary if
S-Lang thinks your environment is color).

I used a combination of inverse video, underline, and bold to substitute for
active and selected widgets, etc.

o Couldn't change text to all CAPS because of I18N (Japanese, etc) issues (and
what if the text is just a number)
o Couldn't change outlines to double-lines because these chars don't exist on
many terms and because this would involve heavy slang modifications
o Couldn't add text or modify the text because of space/layout and I18N issues.