event.detail = osToRole(osRoleAttribute);
event.detail = -1;
	int getRoleAttribute (int nextHandler, int theEvent, int userData) {		int code = OS.CallNextEventHandler (nextHandler, theEvent);		osRoleAttribute = null;		int [] stringRef = new int [1];		if (code == OS.noErr) {			OS.GetEventParameter (theEvent, OS.kEventParamAccessibleAttributeValue, OS.typeCFStringRef, null, 4, null, stringRef);			osRoleAttribute = stringRefToString (stringRef [0]);		}		AccessibleControlEvent event = new AccessibleControlEvent(this);		event.childID = getChildIDFromEvent(theEvent);		event.detail = osToRole(osRoleAttribute);		for (int i = 0; i < accessibleControlListeners.size(); i++) {			AccessibleControlListener listener = (AccessibleControlListener) accessibleControlListeners.elementAt(i);			listener.getRole(event);		}		stringRef [0] = stringToStringRef (roleToOs (event.detail));		if (stringRef [0] == 0) return code;		OS.SetEventParameter (theEvent, OS.kEventParamAccessibleAttributeValue, OS.typeCFStringRef, 4, stringRef);		return OS.noErr;	}