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

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

Issue 2112243004: Ignores ARIA relations (e.g. aria-labelledby) that point to an invisible target. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed invisible to hidden to match ARIA Implementation Guide. Created 4 years, 5 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) 2008, 2009, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2011 Apple 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 19 matching lines...) Expand all
30 30
31 #include "core/editing/EditingUtilities.h" 31 #include "core/editing/EditingUtilities.h"
32 #include "core/editing/VisibleUnits.h" 32 #include "core/editing/VisibleUnits.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/HTMLDialogElement.h" 36 #include "core/html/HTMLDialogElement.h"
37 #include "core/html/HTMLFrameOwnerElement.h" 37 #include "core/html/HTMLFrameOwnerElement.h"
38 #include "core/html/parser/HTMLParserIdioms.h" 38 #include "core/html/parser/HTMLParserIdioms.h"
39 #include "core/layout/LayoutTheme.h" 39 #include "core/layout/LayoutTheme.h"
40 #include "core/style/ComputedStyleConstants.h"
40 #include "modules/accessibility/AXObjectCacheImpl.h" 41 #include "modules/accessibility/AXObjectCacheImpl.h"
41 #include "platform/UserGestureIndicator.h" 42 #include "platform/UserGestureIndicator.h"
42 #include "platform/text/PlatformLocale.h" 43 #include "platform/text/PlatformLocale.h"
43 #include "wtf/HashSet.h" 44 #include "wtf/HashSet.h"
44 #include "wtf/StdLibExtras.h" 45 #include "wtf/StdLibExtras.h"
45 #include "wtf/text/WTFString.h" 46 #include "wtf/text/WTFString.h"
46 47
47 using blink::WebLocalizedString; 48 using blink::WebLocalizedString;
48 49
49 namespace blink { 50 namespace blink {
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 894
894 void AXObject::elementsFromAttribute(HeapVector<Member<Element>>& elements, cons t QualifiedName& attribute) const 895 void AXObject::elementsFromAttribute(HeapVector<Member<Element>>& elements, cons t QualifiedName& attribute) const
895 { 896 {
896 Vector<String> ids; 897 Vector<String> ids;
897 tokenVectorFromAttribute(ids, attribute); 898 tokenVectorFromAttribute(ids, attribute);
898 if (ids.isEmpty()) 899 if (ids.isEmpty())
899 return; 900 return;
900 901
901 TreeScope& scope = getNode()->treeScope(); 902 TreeScope& scope = getNode()->treeScope();
902 for (const auto& id : ids) { 903 for (const auto& id : ids) {
903 if (Element* idElement = scope.getElementById(AtomicString(id))) 904 if (Element* idElement = scope.getElementById(AtomicString(id))) {
aboxhall 2016/07/08 17:12:35 Something weird happened here, does this file need
904 elements.append(idElement); 905 elements.append(idElement);
906 }
905 } 907 }
906 } 908 }
907 909
908 void AXObject::ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements ) const 910 void AXObject::ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements ) const
909 { 911 {
910 // Try both spellings, but prefer aria-labelledby, which is the official spe c. 912 // Try both spellings, but prefer aria-labelledby, which is the official spe c.
911 elementsFromAttribute(elements, aria_labelledbyAttr); 913 elementsFromAttribute(elements, aria_labelledbyAttr);
912 if (!elements.size()) 914 if (!elements.size())
913 elementsFromAttribute(elements, aria_labeledbyAttr); 915 elementsFromAttribute(elements, aria_labeledbyAttr);
914 } 916 }
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after
1748 1750
1749 DEFINE_TRACE(AXObject) 1751 DEFINE_TRACE(AXObject)
1750 { 1752 {
1751 visitor->trace(m_children); 1753 visitor->trace(m_children);
1752 visitor->trace(m_parent); 1754 visitor->trace(m_parent);
1753 visitor->trace(m_cachedLiveRegionRoot); 1755 visitor->trace(m_cachedLiveRegionRoot);
1754 visitor->trace(m_axObjectCache); 1756 visitor->trace(m_axObjectCache);
1755 } 1757 }
1756 1758
1757 } // namespace blink 1759 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698