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

Bug 181660

Summary: Radio button tab order is unintuitive
Product: [Eclipse Project] Platform Reporter: Whitney Sorenson <sorensm>
Component: SWTAssignee: Steve Northover <snorthov>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3    
Version: 3.3   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Whitney Sorenson CLA 2007-04-09 16:38:46 EDT
Build ID: M20070212-1330

Steps To Reproduce:
1. When using Radio buttons, the tab order seems to skip the radio buttons and does not follow the normal, intuitive, top-to-bottom ordering.

Example dialog:
public static void main (String [] args) {
	Display display = new Display ();
	final Shell shell = new Shell (display);
	shell.setLayout(new GridLayout(2, false));

	Label lbl = new Label(shell, SWT.NONE);
	lbl.setText("label 1");
	
	Text txt1 = new Text(shell, SWT.BORDER);
	
	Button rd1 = new Button(shell, SWT.RADIO);
	rd1.setText("Radio 1");
	rd1.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
	
	
	Button rd2 = new Button(shell, SWT.RADIO);
	rd2.setText("Radio 2");
	rd2.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, false, false, 2, 1));
	
	
	Label lbl2 = new Label(shell, SWT.NONE);
	lbl2.setText("label 2");
	
	Text txt2 = new Text(shell, SWT.BORDER);

	
	shell.setSize(400, 350);
	shell.open();
	while (!shell.isDisposed ()) {
		if (!display.readAndDispatch ()) {
			display.sleep ();
		}
	}
	display.dispose();
}

The expected behavior can be demonstrated by switching the buttons to PUSH.
Comment 1 Steve Northover CLA 2007-04-09 17:59:06 EDT
I know what you mean, but this bug is a WONTFIX.  Tabbing goes from tab group to tab group.  A composite is a tab group.  All of the remaining children of a composite that are not composites make up a "default tab group", which is traversed last.  In this manner, it is possible to make sure that every widget is traversable.

Try putting the radio buttons in a composite.