Bug 117561 - [Windows] Implement Accessibility2 APIs in Windows
Summary: [Windows] Implement Accessibility2 APIs in Windows
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Unspecified
: P2 Normal
Assignee: Brent Fulgham
URL:
Keywords:
Depends on:
Blocks: 38882
  Show dependency treegraph
 
Reported: 2013-06-12 14:07 PDT by Brent Fulgham
Modified: 2013-06-12 17:05 PDT (History)
3 users (show)

See Also:


Attachments
Patch (99.58 KB, patch)
2013-06-12 14:24 PDT, Brent Fulgham
no flags Details | Formatted Diff | Diff
Patch (99.63 KB, patch)
2013-06-12 14:34 PDT, Brent Fulgham
no flags Details | Formatted Diff | Diff
Revised to not use global constructors. (100.46 KB, patch)
2013-06-12 15:41 PDT, Brent Fulgham
andersca: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brent Fulgham 2013-06-12 14:07:03 PDT
This change exposes the IAccessibility2 interface (http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/index.html) on Windows.

Most of the features are currently stubbed out, but the "attributeValue" method from Bug 117513 has been revised to present the IAccessibility2 interface signature.

Existing tests (such as title-ui-element-correctness.html) cover this behavior.
Comment 1 Brent Fulgham 2013-06-12 14:24:08 PDT
Created attachment 204534 [details]
Patch
Comment 2 WebKit Commit Bot 2013-06-12 14:26:10 PDT
Attachment 204534 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/ChangeLog', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters', u'Source/WebKit/WebKit.vcxproj/Interfaces/InterfacesCommon.props', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters', u'Source/WebKit/win/AccessibleBase.cpp', u'Source/WebKit/win/AccessibleBase.h', u'Source/WebKit/win/AccessibleDocument.cpp', u'Source/WebKit/win/AccessibleDocument.h', u'Source/WebKit/win/AccessibleImage.cpp', u'Source/WebKit/win/AccessibleImage.h', u'Source/WebKit/win/ChangeLog', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2.idl', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2_2.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleApplication.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleRelation.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleStates.idl', u'Source/WebKit/win/Interfaces/Accessible2/IA2CommonTypes.idl', u'Source/WebKit/win/Interfaces/AccessibleComparable.idl', u'Source/WebKit/win/Interfaces/WebKit.idl', u'Source/WebKit/win/WebFrame.cpp', u'Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp', u'Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp']" exit_code: 1
Source/WebKit/win/AccessibleBase.cpp:133:  AccessibleBase::get_attribute is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:145:  AccessibleBase::get_accessibleWithCaret is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:151:  AccessibleBase::get_relationTargetsOfType is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:158:  AccessibleBase::get_nRelations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:170:  AccessibleBase::get_relation is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:179:  AccessibleBase::get_relations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:214:  AccessibleBase::get_groupPosition is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:220:  AccessibleBase::get_states is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:233:  AccessibleBase::get_extendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:245:  AccessibleBase::get_localizedExtendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:257:  AccessibleBase::get_nExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:270:  AccessibleBase::get_extendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:276:  AccessibleBase::get_localizedExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:282:  AccessibleBase::get_uniqueID is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:294:  AccessibleBase::get_windowHandle is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:300:  AccessibleBase::get_indexInParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:305:  AccessibleBase::get_locale is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:311:  AccessibleBase::get_attributes is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:320:  AccessibleBase::get_accParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:513:  AccessibleBase::get_accState is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 20 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Brent Fulgham 2013-06-12 14:34:31 PDT
Created attachment 204535 [details]
Patch
Comment 4 Brent Fulgham 2013-06-12 14:35:55 PDT
Note: The non-standard "get_XXXXX" method signatures that stylebot is complaining about are mandated by the IAccessible2 specification and IDL.  We can't change them.
Comment 5 WebKit Commit Bot 2013-06-12 14:37:03 PDT
Attachment 204535 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/ChangeLog', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters', u'Source/WebKit/WebKit.vcxproj/Interfaces/InterfacesCommon.props', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters', u'Source/WebKit/win/AccessibleBase.cpp', u'Source/WebKit/win/AccessibleBase.h', u'Source/WebKit/win/AccessibleDocument.cpp', u'Source/WebKit/win/AccessibleDocument.h', u'Source/WebKit/win/AccessibleImage.cpp', u'Source/WebKit/win/AccessibleImage.h', u'Source/WebKit/win/ChangeLog', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2.idl', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2_2.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleApplication.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleRelation.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleStates.idl', u'Source/WebKit/win/Interfaces/Accessible2/IA2CommonTypes.idl', u'Source/WebKit/win/Interfaces/AccessibleComparable.idl', u'Source/WebKit/win/Interfaces/WebKit.idl', u'Source/WebKit/win/WebFrame.cpp', u'Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp', u'Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp']" exit_code: 1
Source/WebKit/win/AccessibleBase.cpp:134:  AccessibleBase::get_attribute is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:146:  AccessibleBase::get_accessibleWithCaret is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:152:  AccessibleBase::get_relationTargetsOfType is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:159:  AccessibleBase::get_nRelations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:171:  AccessibleBase::get_relation is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:180:  AccessibleBase::get_relations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:215:  AccessibleBase::get_groupPosition is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:221:  AccessibleBase::get_states is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:234:  AccessibleBase::get_extendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:246:  AccessibleBase::get_localizedExtendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:258:  AccessibleBase::get_nExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:271:  AccessibleBase::get_extendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:277:  AccessibleBase::get_localizedExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:283:  AccessibleBase::get_uniqueID is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:295:  AccessibleBase::get_windowHandle is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:301:  AccessibleBase::get_indexInParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:306:  AccessibleBase::get_locale is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:312:  AccessibleBase::get_attributes is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:321:  AccessibleBase::get_accParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:514:  AccessibleBase::get_accState is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 20 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 6 Brent Fulgham 2013-06-12 14:51:20 PDT
(In reply to comment #5)
> Attachment 204535 [details] did not pass style-queue:
> 
> Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', > Source/WebKit/win/AccessibleBase.cpp:134:  AccessibleBase::get_attribute is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
[... etc. ...]
> Total errors found: 20 in 24 files

These are all due to IAccessibility2 signature requirements.
Comment 7 Brent Fulgham 2013-06-12 15:41:46 PDT
Created attachment 204541 [details]
Revised to not use global constructors.
Comment 8 WebKit Commit Bot 2013-06-12 15:42:49 PDT
Attachment 204541 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebKit/ChangeLog', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj', u'Source/WebKit/WebKit.vcxproj/Interfaces/Interfaces.vcxproj.filters', u'Source/WebKit/WebKit.vcxproj/Interfaces/InterfacesCommon.props', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj', u'Source/WebKit/WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters', u'Source/WebKit/win/AccessibleBase.cpp', u'Source/WebKit/win/AccessibleBase.h', u'Source/WebKit/win/AccessibleDocument.cpp', u'Source/WebKit/win/AccessibleDocument.h', u'Source/WebKit/win/AccessibleImage.cpp', u'Source/WebKit/win/AccessibleImage.h', u'Source/WebKit/win/ChangeLog', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2.idl', u'Source/WebKit/win/Interfaces/Accessible2/Accessible2_2.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleApplication.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleRelation.idl', u'Source/WebKit/win/Interfaces/Accessible2/AccessibleStates.idl', u'Source/WebKit/win/Interfaces/Accessible2/IA2CommonTypes.idl', u'Source/WebKit/win/Interfaces/AccessibleComparable.idl', u'Source/WebKit/win/Interfaces/WebKit.idl', u'Source/WebKit/win/WebFrame.cpp', u'Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp', u'Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp']" exit_code: 1
Source/WebKit/win/AccessibleBase.cpp:135:  AccessibleBase::get_attribute is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:147:  AccessibleBase::get_accessibleWithCaret is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:153:  AccessibleBase::get_relationTargetsOfType is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:160:  AccessibleBase::get_nRelations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:172:  AccessibleBase::get_relation is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:181:  AccessibleBase::get_relations is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:216:  AccessibleBase::get_groupPosition is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:222:  AccessibleBase::get_states is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:235:  AccessibleBase::get_extendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:247:  AccessibleBase::get_localizedExtendedRole is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:259:  AccessibleBase::get_nExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:272:  AccessibleBase::get_extendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:278:  AccessibleBase::get_localizedExtendedStates is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:284:  AccessibleBase::get_uniqueID is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:296:  AccessibleBase::get_windowHandle is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:302:  AccessibleBase::get_indexInParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:307:  AccessibleBase::get_locale is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:313:  AccessibleBase::get_attributes is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:322:  AccessibleBase::get_accParent is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebKit/win/AccessibleBase.cpp:515:  AccessibleBase::get_accState is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 20 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 9 Anders Carlsson 2013-06-12 16:39:01 PDT
Comment on attachment 204541 [details]
Revised to not use global constructors.

View in context: https://bugs.webkit.org/attachment.cgi?id=204541&action=review

> Tools/DumpRenderTree/win/AccessibilityUIElementWin.cpp:170
> +static const _bstr_t& titleUIElementAttributeKey()
> +{
> +    static const _bstr_t titleUIElementAttributeKey(L"AXTitleUIElementAttribute");
> +    return titleUIElementAttributeKey;
> +}

This will create a global destructor. I think it’s fine to recreate the string every time.
Comment 10 Brent Fulgham 2013-06-12 17:05:38 PDT
Committed r151529: <http://trac.webkit.org/changeset/151529>