Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Side by Side Diff: third_party/WebKit/Source/modules/accessibility/AXObjectCacheImpl.cpp

Issue 1628283002: posinset and setsize for input type, radio, exposed in AX tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added AXRadioInput Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014, Google Inc. All rights reserved. 2 * Copyright (C) 2014, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 21 matching lines...) Expand all
32 #include "core/dom/Document.h" 32 #include "core/dom/Document.h"
33 #include "core/frame/FrameView.h" 33 #include "core/frame/FrameView.h"
34 #include "core/frame/LocalFrame.h" 34 #include "core/frame/LocalFrame.h"
35 #include "core/frame/Settings.h" 35 #include "core/frame/Settings.h"
36 #include "core/html/HTMLAreaElement.h" 36 #include "core/html/HTMLAreaElement.h"
37 #include "core/html/HTMLImageElement.h" 37 #include "core/html/HTMLImageElement.h"
38 #include "core/html/HTMLInputElement.h" 38 #include "core/html/HTMLInputElement.h"
39 #include "core/html/HTMLLabelElement.h" 39 #include "core/html/HTMLLabelElement.h"
40 #include "core/html/HTMLOptionElement.h" 40 #include "core/html/HTMLOptionElement.h"
41 #include "core/html/HTMLSelectElement.h" 41 #include "core/html/HTMLSelectElement.h"
42 #include "core/html/forms/FormController.h"
42 #include "core/layout/LayoutListBox.h" 43 #include "core/layout/LayoutListBox.h"
43 #include "core/layout/LayoutMenuList.h" 44 #include "core/layout/LayoutMenuList.h"
44 #include "core/layout/LayoutProgress.h" 45 #include "core/layout/LayoutProgress.h"
45 #include "core/layout/LayoutSlider.h" 46 #include "core/layout/LayoutSlider.h"
46 #include "core/layout/LayoutTable.h" 47 #include "core/layout/LayoutTable.h"
47 #include "core/layout/LayoutTableCell.h" 48 #include "core/layout/LayoutTableCell.h"
48 #include "core/layout/LayoutTableRow.h" 49 #include "core/layout/LayoutTableRow.h"
49 #include "core/layout/LayoutView.h" 50 #include "core/layout/LayoutView.h"
50 #include "core/layout/line/AbstractInlineTextBox.h" 51 #include "core/layout/line/AbstractInlineTextBox.h"
51 #include "core/page/ChromeClient.h" 52 #include "core/page/ChromeClient.h"
52 #include "core/page/FocusController.h" 53 #include "core/page/FocusController.h"
53 #include "core/page/Page.h" 54 #include "core/page/Page.h"
54 #include "modules/accessibility/AXARIAGrid.h" 55 #include "modules/accessibility/AXARIAGrid.h"
55 #include "modules/accessibility/AXARIAGridCell.h" 56 #include "modules/accessibility/AXARIAGridCell.h"
56 #include "modules/accessibility/AXARIAGridRow.h" 57 #include "modules/accessibility/AXARIAGridRow.h"
57 #include "modules/accessibility/AXImageMapLink.h" 58 #include "modules/accessibility/AXImageMapLink.h"
58 #include "modules/accessibility/AXInlineTextBox.h" 59 #include "modules/accessibility/AXInlineTextBox.h"
59 #include "modules/accessibility/AXLayoutObject.h" 60 #include "modules/accessibility/AXLayoutObject.h"
60 #include "modules/accessibility/AXList.h" 61 #include "modules/accessibility/AXList.h"
61 #include "modules/accessibility/AXListBox.h" 62 #include "modules/accessibility/AXListBox.h"
62 #include "modules/accessibility/AXListBoxOption.h" 63 #include "modules/accessibility/AXListBoxOption.h"
63 #include "modules/accessibility/AXMediaControls.h" 64 #include "modules/accessibility/AXMediaControls.h"
64 #include "modules/accessibility/AXMenuList.h" 65 #include "modules/accessibility/AXMenuList.h"
65 #include "modules/accessibility/AXMenuListOption.h" 66 #include "modules/accessibility/AXMenuListOption.h"
66 #include "modules/accessibility/AXMenuListPopup.h" 67 #include "modules/accessibility/AXMenuListPopup.h"
67 #include "modules/accessibility/AXProgressIndicator.h" 68 #include "modules/accessibility/AXProgressIndicator.h"
69 #include "modules/accessibility/AXRadioInput.h"
68 #include "modules/accessibility/AXSVGRoot.h" 70 #include "modules/accessibility/AXSVGRoot.h"
69 #include "modules/accessibility/AXSlider.h" 71 #include "modules/accessibility/AXSlider.h"
70 #include "modules/accessibility/AXSpinButton.h" 72 #include "modules/accessibility/AXSpinButton.h"
71 #include "modules/accessibility/AXTable.h" 73 #include "modules/accessibility/AXTable.h"
72 #include "modules/accessibility/AXTableCell.h" 74 #include "modules/accessibility/AXTableCell.h"
73 #include "modules/accessibility/AXTableColumn.h" 75 #include "modules/accessibility/AXTableColumn.h"
74 #include "modules/accessibility/AXTableHeaderContainer.h" 76 #include "modules/accessibility/AXTableHeaderContainer.h"
75 #include "modules/accessibility/AXTableRow.h" 77 #include "modules/accessibility/AXTableRow.h"
76 #include "wtf/PassRefPtr.h" 78 #include "wtf/PassRefPtr.h"
77 79
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 if (nodeHasRole(node, "gridcell") || nodeHasRole(node, "columnheader") || no deHasRole(node, "rowheader")) 300 if (nodeHasRole(node, "gridcell") || nodeHasRole(node, "columnheader") || no deHasRole(node, "rowheader"))
299 return AXARIAGridCell::create(layoutObject, *this); 301 return AXARIAGridCell::create(layoutObject, *this);
300 302
301 // media controls 303 // media controls
302 if (node && node->isMediaControlElement()) 304 if (node && node->isMediaControlElement())
303 return AccessibilityMediaControl::create(layoutObject, *this); 305 return AccessibilityMediaControl::create(layoutObject, *this);
304 306
305 if (isHTMLOptionElement(node)) 307 if (isHTMLOptionElement(node))
306 return AXListBoxOption::create(layoutObject, *this); 308 return AXListBoxOption::create(layoutObject, *this);
307 309
310 if (isHTMLInputElement(node) && toHTMLInputElement(node)->isRadioButton())
311 return AXRadioInput::create(layoutObject, *this);
312
308 if (layoutObject->isSVGRoot()) 313 if (layoutObject->isSVGRoot())
309 return AXSVGRoot::create(layoutObject, *this); 314 return AXSVGRoot::create(layoutObject, *this);
310 315
311 if (layoutObject->isBoxModelObject()) { 316 if (layoutObject->isBoxModelObject()) {
312 LayoutBoxModelObject* cssBox = toLayoutBoxModelObject(layoutObject); 317 LayoutBoxModelObject* cssBox = toLayoutBoxModelObject(layoutObject);
313 if (cssBox->isListBox()) 318 if (cssBox->isListBox())
314 return AXListBox::create(toLayoutListBox(cssBox), *this); 319 return AXListBox::create(toLayoutListBox(cssBox), *this);
315 if (cssBox->isMenuList()) 320 if (cssBox->isMenuList())
316 return AXMenuList::create(toLayoutMenuList(cssBox), *this); 321 return AXMenuList::create(toLayoutMenuList(cssBox), *this);
317 322
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 920
916 void AXObjectCacheImpl::listboxActiveIndexChanged(HTMLSelectElement* select) 921 void AXObjectCacheImpl::listboxActiveIndexChanged(HTMLSelectElement* select)
917 { 922 {
918 AXObject* obj = get(select); 923 AXObject* obj = get(select);
919 if (!obj || !obj->isAXListBox()) 924 if (!obj || !obj->isAXListBox())
920 return; 925 return;
921 926
922 toAXListBox(obj)->activeIndexChanged(); 927 toAXListBox(obj)->activeIndexChanged();
923 } 928 }
924 929
930 void AXObjectCacheImpl::radiobuttonPositionChanged(HTMLInputElement* radioinput, int position)
931 {
932 AXObject* obj = get(radioinput);
933 if (!obj || !obj->isAXRadioInput())
934 return;
935
936 toAXRadioInput(obj)->posInSetChanged(position);
937 }
938
925 void AXObjectCacheImpl::handleLayoutComplete(LayoutObject* layoutObject) 939 void AXObjectCacheImpl::handleLayoutComplete(LayoutObject* layoutObject)
926 { 940 {
927 if (!layoutObject) 941 if (!layoutObject)
928 return; 942 return;
929 943
930 m_modificationCount++; 944 m_modificationCount++;
931 945
932 // Create the AXObject if it didn't yet exist - that's always safe at the en d of a layout, and it 946 // Create the AXObject if it didn't yet exist - that's always safe at the en d of a layout, and it
933 // allows an AX notification to be sent when a page has its first layout, ra ther than when the 947 // allows an AX notification to be sent when a page has its first layout, ra ther than when the
934 // document first loads. 948 // document first loads.
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 visitor->trace(m_nodeObjectMapping); 1276 visitor->trace(m_nodeObjectMapping);
1263 #endif 1277 #endif
1264 1278
1265 visitor->trace(m_objects); 1279 visitor->trace(m_objects);
1266 visitor->trace(m_notificationsToPost); 1280 visitor->trace(m_notificationsToPost);
1267 1281
1268 AXObjectCache::trace(visitor); 1282 AXObjectCache::trace(visitor);
1269 } 1283 }
1270 1284
1271 } // namespace blink 1285 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698