OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 5 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
6 | 6 |
7 #include <execinfo.h> | 7 #include <execinfo.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <string.h> | 10 #include <string.h> |
(...skipping 1856 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1867 | 1867 |
1868 if (isMixed) | 1868 if (isMixed) |
1869 value = 2; | 1869 value = 2; |
1870 | 1870 |
1871 return [NSNumber numberWithInt:value]; | 1871 return [NSNumber numberWithInt:value]; |
1872 | 1872 |
1873 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] || | 1873 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] || |
1874 [role isEqualToString:NSAccessibilityRadioButtonRole] || | 1874 [role isEqualToString:NSAccessibilityRadioButtonRole] || |
1875 [self internalRole] == ui::AX_ROLE_MENU_ITEM_CHECK_BOX || | 1875 [self internalRole] == ui::AX_ROLE_MENU_ITEM_CHECK_BOX || |
1876 [self internalRole] == ui::AX_ROLE_MENU_ITEM_RADIO) { | 1876 [self internalRole] == ui::AX_ROLE_MENU_ITEM_RADIO) { |
1877 int value = 0; | 1877 int value; |
1878 value = GetState( | 1878 const int checkedState = |
1879 browserAccessibility_, ui::AX_STATE_CHECKED) ? 1 : 0; | 1879 browserAccessibility_->GetIntAttribute(ui::AX_ATTR_CHECKED_STATE); |
1880 value = GetState( | 1880 switch (checkedState) { |
1881 browserAccessibility_, ui::AX_STATE_SELECTED) ? | 1881 case ui::AX_CHECKED_STATE_TRUE: |
1882 1 : | 1882 value = 1; |
1883 value; | 1883 break; |
1884 | 1884 case ui::AX_CHECKED_STATE_MIXED: |
1885 if (browserAccessibility_->GetBoolAttribute(ui::AX_ATTR_STATE_MIXED)) { | 1885 value = 2; |
1886 value = 2; | 1886 break; |
| 1887 default: |
| 1888 value = GetState(browserAccessibility_, ui::AX_STATE_SELECTED) ? 1 : 0; |
| 1889 break; |
1887 } | 1890 } |
1888 return [NSNumber numberWithInt:value]; | 1891 return [NSNumber numberWithInt:value]; |
1889 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || | 1892 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || |
1890 [role isEqualToString:NSAccessibilitySliderRole] || | 1893 [role isEqualToString:NSAccessibilitySliderRole] || |
1891 [role isEqualToString:NSAccessibilityIncrementorRole] || | 1894 [role isEqualToString:NSAccessibilityIncrementorRole] || |
1892 [role isEqualToString:NSAccessibilityScrollBarRole]) { | 1895 [role isEqualToString:NSAccessibilityScrollBarRole]) { |
1893 float floatValue; | 1896 float floatValue; |
1894 if (browserAccessibility_->GetFloatAttribute( | 1897 if (browserAccessibility_->GetFloatAttribute( |
1895 ui::AX_ATTR_VALUE_FOR_RANGE, &floatValue)) { | 1898 ui::AX_ATTR_VALUE_FOR_RANGE, &floatValue)) { |
1896 return [NSNumber numberWithFloat:floatValue]; | 1899 return [NSNumber numberWithFloat:floatValue]; |
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2885 } | 2888 } |
2886 | 2889 |
2887 - (BOOL)accessibilityNotifiesWhenDestroyed { | 2890 - (BOOL)accessibilityNotifiesWhenDestroyed { |
2888 // Indicate that BrowserAccessibilityCocoa will post a notification when it's | 2891 // Indicate that BrowserAccessibilityCocoa will post a notification when it's |
2889 // destroyed (see -detach). This allows VoiceOver to do some internal things | 2892 // destroyed (see -detach). This allows VoiceOver to do some internal things |
2890 // more efficiently. | 2893 // more efficiently. |
2891 return YES; | 2894 return YES; |
2892 } | 2895 } |
2893 | 2896 |
2894 @end | 2897 @end |
OLD | NEW |