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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/common/dom_predicates.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview A bunch of predicates that take as input an array of 6 * @fileoverview A bunch of predicates that take as input an array of
7 * nodes with the unique ancestors of a node. They output true if a 7 * nodes with the unique ancestors of a node. They output true if a
8 * certain category of node has been found. 8 * certain category of node has been found.
9 * 9 *
10 */ 10 */
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 114
115 115
116 /** 116 /**
117 * Editable text field. 117 * Editable text field.
118 * @param {Array<Node>} nodes An array of nodes to check. 118 * @param {Array<Node>} nodes An array of nodes to check.
119 * @return {?Node} Node in the array that is an editable text field. 119 * @return {?Node} Node in the array that is an editable text field.
120 */ 120 */
121 cvox.DomPredicates.editTextPredicate = function(nodes) { 121 cvox.DomPredicates.editTextPredicate = function(nodes) {
122 for (var i = 0; i < nodes.length; i++) { 122 for (var i = 0; i < nodes.length; i++) {
123 if ((nodes[i].getAttribute && nodes[i].getAttribute('role') == 'textbox') || 123 if ((nodes[i].getAttribute && nodes[i].getAttribute('role') == 'textbox') ||
124 nodes[i].tagName == 'TEXTAREA' || 124 nodes[i].tagName == 'TEXTAREA' || nodes[i].isContentEditable ||
125 nodes[i].isContentEditable ||
126 (nodes[i].tagName == 'INPUT' && 125 (nodes[i].tagName == 'INPUT' &&
127 cvox.DomUtil.isInputTypeText(nodes[i]))) { 126 cvox.DomUtil.isInputTypeText(nodes[i]))) {
128 return nodes[i]; 127 return nodes[i];
129 } 128 }
130 } 129 }
131 return null; 130 return null;
132 }; 131 };
133 132
134 133
135 /** 134 /**
136 * Heading. 135 * Heading.
137 * @param {Array<Node>} nodes An array of nodes to check. 136 * @param {Array<Node>} nodes An array of nodes to check.
138 * @return {?Node} Node in the array that is a heading. 137 * @return {?Node} Node in the array that is a heading.
139 */ 138 */
140 cvox.DomPredicates.headingPredicate = function(nodes) { 139 cvox.DomPredicates.headingPredicate = function(nodes) {
141 for (var i = 0; i < nodes.length; i++) { 140 for (var i = 0; i < nodes.length; i++) {
142 if (nodes[i].getAttribute && 141 if (nodes[i].getAttribute && nodes[i].getAttribute('role') == 'heading') {
143 nodes[i].getAttribute('role') == 'heading') {
144 return nodes[i]; 142 return nodes[i];
145 } 143 }
146 switch (nodes[i].tagName) { 144 switch (nodes[i].tagName) {
147 case 'H1': 145 case 'H1':
148 case 'H2': 146 case 'H2':
149 case 'H3': 147 case 'H3':
150 case 'H4': 148 case 'H4':
151 case 'H5': 149 case 'H5':
152 case 'H6': 150 case 'H6':
153 return nodes[i]; 151 return nodes[i];
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 }; 248 };
251 249
252 /** 250 /**
253 * Table Cell. 251 * Table Cell.
254 * @param {Array<Node>} nodes An array of nodes to check. 252 * @param {Array<Node>} nodes An array of nodes to check.
255 * @return {?Node} Node in the array that is a table cell. 253 * @return {?Node} Node in the array that is a table cell.
256 */ 254 */
257 cvox.DomPredicates.cellPredicate = function(nodes) { 255 cvox.DomPredicates.cellPredicate = function(nodes) {
258 for (var i = nodes.length - 1; i >= 0; --i) { 256 for (var i = nodes.length - 1; i >= 0; --i) {
259 var node = nodes[i]; 257 var node = nodes[i];
260 if (node.tagName == 'TD' || 258 if (node.tagName == 'TD' || node.tagName == 'TH' ||
261 node.tagName == 'TH' ||
262 (node.getAttribute && node.getAttribute('role') == 'gridcell')) { 259 (node.getAttribute && node.getAttribute('role') == 'gridcell')) {
263 return node; 260 return node;
264 } 261 }
265 } 262 }
266 return null; 263 return null;
267 }; 264 };
268 265
269 266
270 /** 267 /**
271 * Visited link. 268 * Visited link.
(...skipping 12 matching lines...) Expand all
284 281
285 282
286 /** 283 /**
287 * List. 284 * List.
288 * @param {Array<Node>} nodes An array of nodes to check. 285 * @param {Array<Node>} nodes An array of nodes to check.
289 * @return {?Node} Node in the array that is a list. 286 * @return {?Node} Node in the array that is a list.
290 */ 287 */
291 cvox.DomPredicates.listPredicate = function(nodes) { 288 cvox.DomPredicates.listPredicate = function(nodes) {
292 for (var i = 0; i < nodes.length; i++) { 289 for (var i = 0; i < nodes.length; i++) {
293 if ((nodes[i].getAttribute && nodes[i].getAttribute('role') == 'list') || 290 if ((nodes[i].getAttribute && nodes[i].getAttribute('role') == 'list') ||
294 nodes[i].tagName == 'UL' || 291 nodes[i].tagName == 'UL' || nodes[i].tagName == 'OL') {
295 nodes[i].tagName == 'OL') {
296 return nodes[i]; 292 return nodes[i];
297 } 293 }
298 } 294 }
299 return null; 295 return null;
300 }; 296 };
301 297
302 298
303 /** 299 /**
304 * List item. 300 * List item.
305 * @param {Array<Node>} nodes An array of nodes to check. 301 * @param {Array<Node>} nodes An array of nodes to check.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 * @return {?Node} Node in the array that is considered a section marker. 386 * @return {?Node} Node in the array that is considered a section marker.
391 */ 387 */
392 cvox.DomPredicates.sectionPredicate = function(nodes) { 388 cvox.DomPredicates.sectionPredicate = function(nodes) {
393 for (var i = 0; i < nodes.length; i++) { 389 for (var i = 0; i < nodes.length; i++) {
394 if (cvox.DomUtil.isSemanticElt(nodes[i])) { 390 if (cvox.DomUtil.isSemanticElt(nodes[i])) {
395 return nodes[i]; 391 return nodes[i];
396 } 392 }
397 if (cvox.AriaUtil.isLandmark(nodes[i])) { 393 if (cvox.AriaUtil.isLandmark(nodes[i])) {
398 return nodes[i]; 394 return nodes[i];
399 } 395 }
400 if (nodes[i].getAttribute && 396 if (nodes[i].getAttribute && nodes[i].getAttribute('role') == 'heading') {
401 nodes[i].getAttribute('role') == 'heading') {
402 return nodes[i]; 397 return nodes[i];
403 } 398 }
404 switch (nodes[i].tagName) { 399 switch (nodes[i].tagName) {
405 case 'H1': 400 case 'H1':
406 case 'H2': 401 case 'H2':
407 case 'H3': 402 case 'H3':
408 case 'H4': 403 case 'H4':
409 case 'H5': 404 case 'H5':
410 case 'H6': 405 case 'H6':
411 return nodes[i]; 406 return nodes[i];
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 return null; 442 return null;
448 }; 443 };
449 444
450 /** 445 /**
451 * Article. 446 * Article.
452 * @param {Array<Node>} nodes An array of nodes to check. 447 * @param {Array<Node>} nodes An array of nodes to check.
453 * @return {?Node} Node in the array that is a article. 448 * @return {?Node} Node in the array that is a article.
454 */ 449 */
455 cvox.DomPredicates.articlePredicate = function(nodes) { 450 cvox.DomPredicates.articlePredicate = function(nodes) {
456 for (var i = 0; i < nodes.length; i++) { 451 for (var i = 0; i < nodes.length; i++) {
457 if ((nodes[i].getAttribute && 452 if ((nodes[i].getAttribute && nodes[i].getAttribute('role') == 'article') ||
458 nodes[i].getAttribute('role') == 'article') ||
459 nodes[i].tagName == 'ARTICLE') { 453 nodes[i].tagName == 'ARTICLE') {
460 return nodes[i]; 454 return nodes[i];
461 } 455 }
462 } 456 }
463 return null; 457 return null;
464 }; 458 };
465 459
466 /** 460 /**
467 * Media. 461 * Media.
468 * @param {Array<Node>} nodes An array of nodes to check. 462 * @param {Array<Node>} nodes An array of nodes to check.
469 * @return {?Node} Node in the array that is a media widget (video or audio). 463 * @return {?Node} Node in the array that is a media widget (video or audio).
470 */ 464 */
471 cvox.DomPredicates.mediaPredicate = function(nodes) { 465 cvox.DomPredicates.mediaPredicate = function(nodes) {
472 for (var i = 0; i < nodes.length; i++) { 466 for (var i = 0; i < nodes.length; i++) {
473 if (nodes[i].tagName == 'AUDIO' || 467 if (nodes[i].tagName == 'AUDIO' || nodes[i].tagName == 'VIDEO') {
474 nodes[i].tagName == 'VIDEO') {
475 return nodes[i]; 468 return nodes[i];
476 } 469 }
477 } 470 }
478 return null; 471 return null;
479 }; 472 };
480 473
481 474
482 /** 475 /**
483 * Ordered List. 476 * Ordered List.
484 * @param {Array<Node>} nodes An array of nodes to check. 477 * @param {Array<Node>} nodes An array of nodes to check.
485 * @return {?Node} Node in the array that is a ordered list. 478 * @return {?Node} Node in the array that is a ordered list.
486 */ 479 */
487 cvox.DomPredicates.orderedListPredicate = function(nodes) { 480 cvox.DomPredicates.orderedListPredicate = function(nodes) {
488 for (var i = 0; i < nodes.length; i++) { 481 for (var i = 0; i < nodes.length; i++) {
489 if (nodes[i].tagName == 'OL') { 482 if (nodes[i].tagName == 'OL') {
490 return nodes[i]; 483 return nodes[i];
491 } 484 }
492 } 485 }
493 return null; 486 return null;
494 }; 487 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698