Java tutorial
import java.awt.Dimension; import javax.accessibility.AccessibleContext; import javax.accessibility.AccessibleRelation; import javax.accessibility.AccessibleRelationSet; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class MainClass extends JFrame { MainClass() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); p.setPreferredSize(new Dimension(300, 50)); JLabel jl = new JLabel("Name:"); p.add(jl); JTextField jtf = new JTextField(20); jtf.getAccessibleContext().setAccessibleName("Name-entry"); p.add(jtf); AccessibleRelation ar = new AccessibleRelation("connector", jtf); AccessibleContext ac = jl.getAccessibleContext(); ac.getAccessibleRelationSet().add(ar); getContentPane().add(p); pack(); setVisible(true); } public static void main(String[] args) { MainClass ad11 = new MainClass(); try { Thread.sleep(5000); } catch (InterruptedException e) { } ad11.dumpConnectedInfo(ad11.getAccessibleContext()); } void dumpConnectedInfo(AccessibleContext ac) { AccessibleRelationSet ars = ac.getAccessibleRelationSet(); AccessibleRelation ar = null; if (ars != null) ar = ars.get("connector"); if (ar != null) { Object[] o = ar.getTarget(); JComponent jc = (JComponent) o[0]; System.out.println("Label connected to: " + jc.getAccessibleContext().getAccessibleName()); return; } int nChildren = ac.getAccessibleChildrenCount(); for (int i = 0; i < nChildren; i++) dumpConnectedInfo(ac.getAccessibleChild(i).getAccessibleContext()); } }