OLD | NEW |
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 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 if (type == InputTypeNames::datetime | 325 if (type == InputTypeNames::datetime |
326 || type == InputTypeNames::datetime_local | 326 || type == InputTypeNames::datetime_local |
327 || type == InputTypeNames::month | 327 || type == InputTypeNames::month |
328 || type == InputTypeNames::week) | 328 || type == InputTypeNames::week) |
329 return DateTimeRole; | 329 return DateTimeRole; |
330 if (type == InputTypeNames::radio) { | 330 if (type == InputTypeNames::radio) { |
331 if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) ||
(parentObject() && parentObject()->roleValue() == MenuRole)) | 331 if ((node->parentNode() && isHTMLMenuElement(node->parentNode())) ||
(parentObject() && parentObject()->roleValue() == MenuRole)) |
332 return MenuItemRadioRole; | 332 return MenuItemRadioRole; |
333 return RadioButtonRole; | 333 return RadioButtonRole; |
334 } | 334 } |
| 335 if (type == InputTypeNames::file) |
| 336 return ButtonRole; |
335 if (type == InputTypeNames::number) | 337 if (type == InputTypeNames::number) |
336 return SpinButtonRole; | 338 return SpinButtonRole; |
337 if (input.isTextButton()) | 339 if (input.isTextButton()) |
338 return buttonRoleType(); | 340 return buttonRoleType(); |
339 if (type == InputTypeNames::color) | 341 if (type == InputTypeNames::color) |
340 return ColorWellRole; | 342 return ColorWellRole; |
341 if (type == InputTypeNames::time) | 343 if (type == InputTypeNames::time) |
342 return TimeRole; | 344 return TimeRole; |
343 return TextFieldRole; | 345 return TextFieldRole; |
344 } | 346 } |
345 | 347 |
346 if (isFileUploadButton()) | |
347 return ButtonRole; | |
348 | |
349 if (cssBox && cssBox->isMenuList()) | 348 if (cssBox && cssBox->isMenuList()) |
350 return PopUpButtonRole; | 349 return PopUpButtonRole; |
351 | 350 |
352 if (headingLevel()) | 351 if (headingLevel()) |
353 return HeadingRole; | 352 return HeadingRole; |
354 | 353 |
355 if (m_renderer->isSVGImage()) | 354 if (m_renderer->isSVGImage()) |
356 return ImageRole; | 355 return ImageRole; |
357 if (m_renderer->isSVGRoot()) | 356 if (m_renderer->isSVGRoot()) |
358 return SVGRootRole; | 357 return SVGRootRole; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 { | 488 { |
490 RenderBoxModelObject* renderer = renderBoxModelObject(); | 489 RenderBoxModelObject* renderer = renderBoxModelObject(); |
491 if (!renderer) | 490 if (!renderer) |
492 return false; | 491 return false; |
493 // Widgets are the replaced elements that we represent to AX as attachments | 492 // Widgets are the replaced elements that we represent to AX as attachments |
494 bool isRenderPart = renderer->isRenderPart(); | 493 bool isRenderPart = renderer->isRenderPart(); |
495 ASSERT(!isRenderPart || (renderer->isReplaced() && !isImage())); | 494 ASSERT(!isRenderPart || (renderer->isReplaced() && !isImage())); |
496 return isRenderPart; | 495 return isRenderPart; |
497 } | 496 } |
498 | 497 |
499 bool AXRenderObject::isFileUploadButton() const | |
500 { | |
501 return m_renderer && isHTMLInputElement(m_renderer->node()) && toHTMLInputEl
ement(*m_renderer->node()).type() == InputTypeNames::file; | |
502 } | |
503 | |
504 static bool isLinkable(const AXObject& object) | 498 static bool isLinkable(const AXObject& object) |
505 { | 499 { |
506 if (!object.renderer()) | 500 if (!object.renderer()) |
507 return false; | 501 return false; |
508 | 502 |
509 // See https://wiki.mozilla.org/Accessibility/AT-Windows-API for the element
s | 503 // See https://wiki.mozilla.org/Accessibility/AT-Windows-API for the element
s |
510 // Mozilla considers linkable. | 504 // Mozilla considers linkable. |
511 return object.isLink() || object.isImage() || object.renderer()->isText(); | 505 return object.isLink() || object.isImage() || object.renderer()->isText(); |
512 } | 506 } |
513 | 507 |
(...skipping 1939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2453 if (label && label->renderer()) { | 2447 if (label && label->renderer()) { |
2454 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); | 2448 LayoutRect labelRect = axObjectCache()->getOrCreate(label)->elementR
ect(); |
2455 result.unite(labelRect); | 2449 result.unite(labelRect); |
2456 } | 2450 } |
2457 } | 2451 } |
2458 | 2452 |
2459 return result; | 2453 return result; |
2460 } | 2454 } |
2461 | 2455 |
2462 } // namespace blink | 2456 } // namespace blink |
OLD | NEW |