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

Side by Side Diff: Source/core/accessibility/AXListBoxOption.cpp

Issue 189963007: Use isHTML*Element() helpers more in the accessibility code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 return false; 67 return false;
68 68
69 if (m_optionElement->hasAttribute(disabledAttr)) 69 if (m_optionElement->hasAttribute(disabledAttr))
70 return false; 70 return false;
71 71
72 return true; 72 return true;
73 } 73 }
74 74
75 bool AXListBoxOption::isSelected() const 75 bool AXListBoxOption::isSelected() const
76 { 76 {
77 if (!m_optionElement) 77 if (!isHTMLOptionElement(m_optionElement))
78 return false;
79
80 if (!m_optionElement->hasTagName(optionTag))
81 return false; 78 return false;
82 79
83 return toHTMLOptionElement(m_optionElement)->selected(); 80 return toHTMLOptionElement(m_optionElement)->selected();
84 } 81 }
85 82
86 bool AXListBoxOption::isSelectedOptionActive() const 83 bool AXListBoxOption::isSelectedOptionActive() const
87 { 84 {
88 HTMLSelectElement* listBoxParentNode = listBoxOptionParentNode(); 85 HTMLSelectElement* listBoxParentNode = listBoxOptionParentNode();
89 if (!listBoxParentNode) 86 if (!listBoxParentNode)
90 return false; 87 return false;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 142
146 String AXListBoxOption::stringValue() const 143 String AXListBoxOption::stringValue() const
147 { 144 {
148 if (!m_optionElement) 145 if (!m_optionElement)
149 return String(); 146 return String();
150 147
151 const AtomicString& ariaLabel = getAttribute(aria_labelAttr); 148 const AtomicString& ariaLabel = getAttribute(aria_labelAttr);
152 if (!ariaLabel.isNull()) 149 if (!ariaLabel.isNull())
153 return ariaLabel; 150 return ariaLabel;
154 151
155 if (m_optionElement->hasTagName(optionTag)) 152 if (isHTMLOptionElement(*m_optionElement))
156 return toHTMLOptionElement(m_optionElement)->text(); 153 return toHTMLOptionElement(m_optionElement)->text();
157 154
158 if (m_optionElement->hasTagName(optgroupTag)) 155 if (isHTMLOptGroupElement(*m_optionElement))
159 return toHTMLOptGroupElement(m_optionElement)->groupLabelText(); 156 return toHTMLOptGroupElement(m_optionElement)->groupLabelText();
160 157
161 return String(); 158 return String();
162 } 159 }
163 160
164 Element* AXListBoxOption::actionElement() const 161 Element* AXListBoxOption::actionElement() const
165 { 162 {
166 return m_optionElement; 163 return m_optionElement;
167 } 164 }
168 165
(...skipping 22 matching lines...) Expand all
191 // Convert from the entire list index to the option index. 188 // Convert from the entire list index to the option index.
192 int optionIndex = selectElement->listToOptionIndex(listBoxOptionIndex()); 189 int optionIndex = selectElement->listToOptionIndex(listBoxOptionIndex());
193 selectElement->accessKeySetSelectedIndex(optionIndex); 190 selectElement->accessKeySetSelectedIndex(optionIndex);
194 } 191 }
195 192
196 HTMLSelectElement* AXListBoxOption::listBoxOptionParentNode() const 193 HTMLSelectElement* AXListBoxOption::listBoxOptionParentNode() const
197 { 194 {
198 if (!m_optionElement) 195 if (!m_optionElement)
199 return 0; 196 return 0;
200 197
201 if (m_optionElement->hasTagName(optionTag)) 198 if (isHTMLOptionElement(*m_optionElement))
202 return toHTMLOptionElement(m_optionElement)->ownerSelectElement(); 199 return toHTMLOptionElement(m_optionElement)->ownerSelectElement();
203 200
204 if (m_optionElement->hasTagName(optgroupTag)) 201 if (isHTMLOptGroupElement(*m_optionElement))
205 return toHTMLOptGroupElement(m_optionElement)->ownerSelectElement(); 202 return toHTMLOptGroupElement(m_optionElement)->ownerSelectElement();
206 203
207 return 0; 204 return 0;
208 } 205 }
209 206
210 int AXListBoxOption::listBoxOptionIndex() const 207 int AXListBoxOption::listBoxOptionIndex() const
211 { 208 {
212 if (!m_optionElement) 209 if (!m_optionElement)
213 return -1; 210 return -1;
214 211
215 HTMLSelectElement* selectElement = listBoxOptionParentNode(); 212 HTMLSelectElement* selectElement = listBoxOptionParentNode();
216 if (!selectElement) 213 if (!selectElement)
217 return -1; 214 return -1;
218 215
219 const Vector<HTMLElement*>& listItems = selectElement->listItems(); 216 const Vector<HTMLElement*>& listItems = selectElement->listItems();
220 unsigned length = listItems.size(); 217 unsigned length = listItems.size();
221 for (unsigned i = 0; i < length; i++) { 218 for (unsigned i = 0; i < length; i++) {
222 if (listItems[i] == m_optionElement) 219 if (listItems[i] == m_optionElement)
223 return i; 220 return i;
224 } 221 }
225 222
226 return -1; 223 return -1;
227 } 224 }
228 225
229 } // namespace WebCore 226 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/build/scripts/templates/ElementTypeHelpers.h.tmpl ('k') | Source/core/accessibility/AXMediaControls.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698