Community
Participate
Working Groups
I20100504-0800 The two examples for relations aren't working on Cocoa. AccessibleRelationsExample and AccessibleRelationsExample2 demonstrate the addRelation method, and on Cocoa this means that the Accessible in RELATION_LABEL_FOR should show up as an element in the NSAccessibilityServesAsTitleForUIElementsAttribute list, and the Accessible in the RELATION_LABELLED_BY slot should appear as NSAccessibilityTitleUIElementAttribute. Neither of these are showing up in Accessibility Inspector.
Created attachment 167251 [details] Fix The Cocoa attributes weren't being added properly. Also, if the widget is a 'pseudo-label', need to report back ACC_LABEL so we can pick up the label-related properties.
Unlike bug 311646, this bug is indeed valid, and fixed with the patch.
I believe you. :) I just ran out of time to look at it today.
(In reply to comment #3) > I believe you. :) > I just ran out of time to look at it today. Oh, I wasn't accusing you of that. Just noting for myself (and you) that this is still fixed.
Scott, it looks like your new addRelationAttributes is never called? I ran the 2 relation examples and I don't see any change. We can't just set the role to LABEL until we know what the "real" role is (i.e. call super). (It might be a link... or something else).
Created attachment 168259 [details] Fix in progress Rats.. forgot the changes to Control.java, which call the new addRelationAttributes method. Let me look into the role override. I need to do that when no role is specified for the accessible that is acting as a label, but yes, I probably shouldn't clobber a role that is specified.
Created attachment 168271 [details] Final patch Much cleaner fix. It's not necessary to override the role at all. VoiceOver will pick up the AXTitle attribute of the element acting as the label.
addRelationAttributes can't be public, because that makes it API. If you really want to call it from Control, then you need to put internal_ in front of the method name. I am ok with the patch as long as you take out the public and call the method internal_addRelationAttributes
Expected for RC1.
(In reply to comment #8) > addRelationAttributes can't be public, because that makes it API. > If you really want to call it from Control, then you need to put internal_ in > front of the method name. > I am ok with the patch as long as you take out the public and call the method > internal_addRelationAttributes So noted. I renamed the method and added @noreference around it.
Fixed > 20100512.
Scott, it looks like you may have accidentally committed more than just the patch. There's some extra code in getAttributedStringForRangeParameterizedAttribute in Accessible class (browse changes between revision 1.46 and 1.45), and there's an extra (commented out) method accessibilityIsIgnored in Control class (browse changes between 1.191 and 1.190). You will need to take these extra changes out. Also, where the javadoc for internal_addRelationAttributes says "This field is <em>not</em> part of the SWT public API.", please change it to "This method...". Thanks!
SSQ reminded me that you are away for the rest of the week, so we opened bug 312810 to remove the extra code. So you don't need to do anything (except remember not to commit extra code in future <g>).
(In reply to comment #13) > SSQ reminded me that you are away for the rest of the week, so we opened bug > 312810 to remove the extra code. So you don't need to do anything (except > remember not to commit extra code in future <g>). Sorry about that... I had another fix in progress and and forgot about it when I checked in my last fix yesterday. It occurred to me that I had done it about a half hour into my flight. :-\
No probs. Enjoy the reunion. :)