Bug 97671 [preferences] Java Preference Pages using in accessible Color selection
RC1 The Linked Mode and Syntax colouring pages are both using a color button with no accessibility information. When someone using a screen reader selects it they will get no feedback as to what the button is for - just a random graphic. I assume you are not using the JFace ColorSelector as that has an accessible listener. Here is our code in ColorSelector if you need it for reference: fButton.getAccessible().addAccessibleListener(new AccessibleAdapter() { /* * (non-Javadoc) * * @see org.eclipse.swt.accessibility.AccessibleAdapter#getName(org.eclipse.swt.accessibility.AccessibleEvent) */ public void getName(AccessibleEvent e) { e.result = JFaceResources.getString("ColorSelector.Name"); //$NON-NLS-1$ } });
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/ColorEditor.java
*/
public class ColorEditor {
	
	private Point fExtent;
	private Image fImage;
	private RGB fColorValue;
	private Color fColor;
	private Button fButton;
	
	public ColorEditor(Composite parent) {
		
		fButton= new Button(parent, SWT.PUSH);
		fExtent= computeImageSize(parent);
		fImage= new Image(parent.getDisplay(), fExtent.x, fExtent.y);
		
		GC gc= new GC(fImage);
		gc.setBackground(fButton.getBackground());
		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
		gc.dispose();
		
		fButton.setImage(fImage);
		fButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent event) {
				ColorDialog colorDialog= new ColorDialog(fButton.getShell());
				colorDialog.setRGB(fColorValue);
				RGB newColor = colorDialog.open();
				if (newColor != null) {
					fColorValue= newColor;
					updateColorImage();
				}