The details/summary elements are poorly supported on iOS. Issues: 1. There's no expanded/collapsed status announced from VoiceOver. 2. Impossible to navigate through them using VoiceOver. VO cursor is jumping randomly. <rdar://problem/27914836>
Created attachment 289013 [details] patch
Comment on attachment 289013 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=289013&action=review > Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1840 > + for (AccessibilityObject* parent = object; parent; parent = parent->parentObject()) { can we make a function that takes a lambda for running up the parent chain and returning a match object? and then replace all such places with that ? > Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1871 > + // webkit.org/b/162041 Taking focus onto elements inside a details node will cause VO focusing onto random items. why is this the case? should we put this check inside canSetFocusAttribute() instead
Comment on attachment 289013 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=289013&action=review Thanks, will address other issues. >> Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1871 >> + // webkit.org/b/162041 Taking focus onto elements inside a details node will cause VO focusing onto random items. > > why is this the case? > should we put this check inside canSetFocusAttribute() instead There must be something special with the details element that I haven't had chance to dig into. I think on iOS it's ok to not set focus inside details element when VO tries to focus on it.
Comment on attachment 289013 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=289013&action=review >>> Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1871 >>> + // webkit.org/b/162041 Taking focus onto elements inside a details node will cause VO focusing onto random items. >> >> why is this the case? >> should we put this check inside canSetFocusAttribute() instead > > There must be something special with the details element that I haven't had chance to dig into. I think on iOS it's ok to not set focus inside details element when VO tries to focus on it. I put it here because this will only affect iOS.
Comment on attachment 289013 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=289013&action=review >>>> Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:1871 >>>> + // webkit.org/b/162041 Taking focus onto elements inside a details node will cause VO focusing onto random items. >>> >>> why is this the case? >>> should we put this check inside canSetFocusAttribute() instead >> >> There must be something special with the details element that I haven't had chance to dig into. I think on iOS it's ok to not set focus inside details element when VO tries to focus on it. > > I put it here because this will only affect iOS. ok seems reasonable
Created attachment 289027 [details] patch - updated function to take a lambda to search for matched parent object.
Will look into the patch build issue
Created attachment 289029 [details] patch Fixed the patch
Created attachment 289241 [details] patch Updated style for matchFunc
Comment on attachment 289241 [details] patch Clearing flags on attachment: 289241 Committed r206102: <http://trac.webkit.org/changeset/206102>
All reviewed patches have been landed. Closing bug.