Skip to content

Commit 213fb3d

Browse files
authored
Merge 52ed7cc into f61c3f1
2 parents f61c3f1 + 52ed7cc commit 213fb3d

58 files changed

Lines changed: 397 additions & 392 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

source/IAccessibleHandler/__init__.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -198,39 +198,39 @@
198198
}
199199

200200
IAccessibleStatesToNVDAStates = {
201-
oleacc.STATE_SYSTEM_TRAVERSED: controlTypes.STATE_VISITED,
202-
oleacc.STATE_SYSTEM_UNAVAILABLE: controlTypes.STATE_UNAVAILABLE,
203-
oleacc.STATE_SYSTEM_FOCUSED: controlTypes.STATE_FOCUSED,
204-
oleacc.STATE_SYSTEM_SELECTED: controlTypes.STATE_SELECTED,
205-
oleacc.STATE_SYSTEM_BUSY: controlTypes.STATE_BUSY,
206-
oleacc.STATE_SYSTEM_PRESSED: controlTypes.STATE_PRESSED,
207-
oleacc.STATE_SYSTEM_CHECKED: controlTypes.STATE_CHECKED,
208-
oleacc.STATE_SYSTEM_MIXED: controlTypes.STATE_HALFCHECKED,
209-
oleacc.STATE_SYSTEM_READONLY: controlTypes.STATE_READONLY,
210-
oleacc.STATE_SYSTEM_EXPANDED: controlTypes.STATE_EXPANDED,
211-
oleacc.STATE_SYSTEM_COLLAPSED: controlTypes.STATE_COLLAPSED,
212-
oleacc.STATE_SYSTEM_OFFSCREEN: controlTypes.STATE_OFFSCREEN,
213-
oleacc.STATE_SYSTEM_INVISIBLE: controlTypes.STATE_INVISIBLE,
214-
oleacc.STATE_SYSTEM_TRAVERSED: controlTypes.STATE_VISITED,
215-
oleacc.STATE_SYSTEM_LINKED: controlTypes.STATE_LINKED,
216-
oleacc.STATE_SYSTEM_HASPOPUP: controlTypes.STATE_HASPOPUP,
217-
oleacc.STATE_SYSTEM_PROTECTED: controlTypes.STATE_PROTECTED,
218-
oleacc.STATE_SYSTEM_SELECTABLE: controlTypes.STATE_SELECTABLE,
219-
oleacc.STATE_SYSTEM_FOCUSABLE: controlTypes.STATE_FOCUSABLE,
201+
oleacc.STATE_SYSTEM_TRAVERSED: controlTypes.State.VISITED,
202+
oleacc.STATE_SYSTEM_UNAVAILABLE: controlTypes.State.UNAVAILABLE,
203+
oleacc.STATE_SYSTEM_FOCUSED: controlTypes.State.FOCUSED,
204+
oleacc.STATE_SYSTEM_SELECTED: controlTypes.State.SELECTED,
205+
oleacc.STATE_SYSTEM_BUSY: controlTypes.State.BUSY,
206+
oleacc.STATE_SYSTEM_PRESSED: controlTypes.State.PRESSED,
207+
oleacc.STATE_SYSTEM_CHECKED: controlTypes.State.CHECKED,
208+
oleacc.STATE_SYSTEM_MIXED: controlTypes.State.HALFCHECKED,
209+
oleacc.STATE_SYSTEM_READONLY: controlTypes.State.READONLY,
210+
oleacc.STATE_SYSTEM_EXPANDED: controlTypes.State.EXPANDED,
211+
oleacc.STATE_SYSTEM_COLLAPSED: controlTypes.State.COLLAPSED,
212+
oleacc.STATE_SYSTEM_OFFSCREEN: controlTypes.State.OFFSCREEN,
213+
oleacc.STATE_SYSTEM_INVISIBLE: controlTypes.State.INVISIBLE,
214+
oleacc.STATE_SYSTEM_TRAVERSED: controlTypes.State.VISITED,
215+
oleacc.STATE_SYSTEM_LINKED: controlTypes.State.LINKED,
216+
oleacc.STATE_SYSTEM_HASPOPUP: controlTypes.State.HASPOPUP,
217+
oleacc.STATE_SYSTEM_PROTECTED: controlTypes.State.PROTECTED,
218+
oleacc.STATE_SYSTEM_SELECTABLE: controlTypes.State.SELECTABLE,
219+
oleacc.STATE_SYSTEM_FOCUSABLE: controlTypes.State.FOCUSABLE,
220220
}
221221

222222
IAccessible2StatesToNVDAStates = {
223-
IA2.IA2_STATE_REQUIRED: controlTypes.STATE_REQUIRED,
224-
IA2.IA2_STATE_DEFUNCT: controlTypes.STATE_DEFUNCT,
225-
# IA2.IA2_STATE_STALE:controlTypes.STATE_DEFUNCT,
226-
IA2.IA2_STATE_INVALID_ENTRY: controlTypes.STATE_INVALID_ENTRY,
227-
IA2.IA2_STATE_MODAL: controlTypes.STATE_MODAL,
228-
IA2.IA2_STATE_SUPPORTS_AUTOCOMPLETION: controlTypes.STATE_AUTOCOMPLETE,
229-
IA2.IA2_STATE_MULTI_LINE: controlTypes.STATE_MULTILINE,
230-
IA2.IA2_STATE_ICONIFIED: controlTypes.STATE_ICONIFIED,
231-
IA2.IA2_STATE_EDITABLE: controlTypes.STATE_EDITABLE,
232-
IA2.IA2_STATE_PINNED: controlTypes.STATE_PINNED,
233-
IA2.IA2_STATE_CHECKABLE: controlTypes.STATE_CHECKABLE,
223+
IA2.IA2_STATE_REQUIRED: controlTypes.State.REQUIRED,
224+
IA2.IA2_STATE_DEFUNCT: controlTypes.State.DEFUNCT,
225+
# IA2.IA2_STATE_STALE:controlTypes.State.DEFUNCT,
226+
IA2.IA2_STATE_INVALID_ENTRY: controlTypes.State.INVALID_ENTRY,
227+
IA2.IA2_STATE_MODAL: controlTypes.State.MODAL,
228+
IA2.IA2_STATE_SUPPORTS_AUTOCOMPLETION: controlTypes.State.AUTOCOMPLETE,
229+
IA2.IA2_STATE_MULTI_LINE: controlTypes.State.MULTILINE,
230+
IA2.IA2_STATE_ICONIFIED: controlTypes.State.ICONIFIED,
231+
IA2.IA2_STATE_EDITABLE: controlTypes.State.EDITABLE,
232+
IA2.IA2_STATE_PINNED: controlTypes.State.PINNED,
233+
IA2.IA2_STATE_CHECKABLE: controlTypes.State.CHECKABLE,
234234
}
235235

236236

source/NVDAObjects/IAccessible/MSHTML.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ def _get_text(self):
378378
text=self._rangeObj.text
379379
if not text:
380380
text=u""
381-
if controlTypes.STATE_PROTECTED in self.obj.states:
381+
if controlTypes.State.PROTECTED in self.obj.states:
382382
text=u'*'*len(text)
383383
return text
384384

@@ -413,7 +413,7 @@ def _get_bookmark(self):
413413
class MSHTML(IAccessible):
414414

415415
def _get__UIAControl(self):
416-
if UIAHandler.handler and self.role==controlTypes.Role.EDITABLETEXT and controlTypes.STATE_FOCUSED in self.states:
416+
if UIAHandler.handler and self.role==controlTypes.Role.EDITABLETEXT and controlTypes.State.FOCUSED in self.states:
417417
e=UIAHandler.handler.clientObject.getFocusedElementBuildCache(UIAHandler.handler.baseCacheRequest)
418418
obj=UIA(UIAElement=e)
419419
if isinstance(obj,EditableTextWithoutAutoSelectDetection):
@@ -720,7 +720,7 @@ def _get_value(self):
720720
return value
721721
IARole=self.IAccessibleRole
722722
# value is not useful on certain nodes that just expose a URL, or they have other ways of getting their content (#4976 - editble combos).
723-
if IARole in (oleacc.ROLE_SYSTEM_PANE,oleacc.ROLE_SYSTEM_TEXT) or (IARole==oleacc.ROLE_SYSTEM_COMBOBOX and controlTypes.STATE_EDITABLE in self.states):
723+
if IARole in (oleacc.ROLE_SYSTEM_PANE,oleacc.ROLE_SYSTEM_TEXT) or (IARole==oleacc.ROLE_SYSTEM_COMBOBOX and controlTypes.State.EDITABLE in self.states):
724724
return ""
725725
else:
726726
return super(MSHTML,self).value
@@ -778,7 +778,7 @@ def _get_role(self):
778778
return nodeNamesToNVDARoles.get(nodeName,controlTypes.Role.SECTION)
779779
if self.IAccessibleChildID>0:
780780
states=super(MSHTML,self).states
781-
if controlTypes.STATE_LINKED in states:
781+
if controlTypes.State.LINKED in states:
782782
return controlTypes.Role.LINK
783783
role=super(MSHTML,self).role
784784
#IE uses a MSAA role of ROLE_SYSTEM_TEXT with no readonly state for unsupported or future tags with an explicit ARIA role.
@@ -799,36 +799,36 @@ def _get_states(self):
799799
htmlRequired='required' in self.HTMLAttributes
800800
ariaRequired=self.HTMLAttributes['aria-required']
801801
if htmlRequired or ariaRequired=="true":
802-
states.add(controlTypes.STATE_REQUIRED)
802+
states.add(controlTypes.State.REQUIRED)
803803
ariaSelected=self.HTMLAttributes['aria-selected']
804804
if ariaSelected=="true":
805-
states.add(controlTypes.STATE_SELECTED)
805+
states.add(controlTypes.State.SELECTED)
806806
elif ariaSelected=="false":
807-
states.discard(controlTypes.STATE_SELECTED)
807+
states.discard(controlTypes.State.SELECTED)
808808
ariaExpanded=self.HTMLAttributes['aria-expanded']
809809
if ariaExpanded=="true":
810-
states.add(controlTypes.STATE_EXPANDED)
810+
states.add(controlTypes.State.EXPANDED)
811811
elif ariaExpanded=="false":
812-
states.add(controlTypes.STATE_COLLAPSED)
812+
states.add(controlTypes.State.COLLAPSED)
813813
ariaInvalid=self.HTMLAttributes['aria-invalid']
814814
if ariaInvalid=="true":
815-
states.add(controlTypes.STATE_INVALID_ENTRY)
815+
states.add(controlTypes.State.INVALID_ENTRY)
816816
ariaGrabbed=self.HTMLAttributes['aria-grabbed']
817817
if ariaGrabbed=="true":
818-
states.add(controlTypes.STATE_DRAGGING)
818+
states.add(controlTypes.State.DRAGGING)
819819
elif ariaGrabbed=="false":
820-
states.add(controlTypes.STATE_DRAGGABLE)
820+
states.add(controlTypes.State.DRAGGABLE)
821821
ariaDropeffect=self.HTMLAttributes['aria-dropeffect']
822822
if ariaDropeffect and ariaDropeffect!="none":
823-
states.add(controlTypes.STATE_DROPTARGET)
823+
states.add(controlTypes.State.DROPTARGET)
824824
if self.HTMLAttributes["aria-hidden"]=="true":
825-
states.add(controlTypes.STATE_INVISIBLE)
825+
states.add(controlTypes.State.INVISIBLE)
826826
if self.isContentEditable:
827-
states.add(controlTypes.STATE_EDITABLE)
828-
states.discard(controlTypes.STATE_READONLY)
827+
states.add(controlTypes.State.EDITABLE)
828+
states.discard(controlTypes.State.READONLY)
829829
nodeName=self.HTMLNodeName
830830
if nodeName=="TEXTAREA":
831-
states.add(controlTypes.STATE_MULTILINE)
831+
states.add(controlTypes.State.MULTILINE)
832832
# #4667: Internet Explorer 11 correctly fires focus events for aria-activeDescendant, but fails to set the focused state.
833833
# Therefore check aria-activeDescendant manually and set these states if this is the active descendant.
834834
try:
@@ -838,8 +838,8 @@ def _get_states(self):
838838
if activeElement:
839839
activeID=activeElement.getAttribute('aria-activedescendant')
840840
if activeID and activeID==self.HTMLNode.ID:
841-
states.add(controlTypes.STATE_FOCUSABLE)
842-
states.add(controlTypes.STATE_FOCUSED)
841+
states.add(controlTypes.State.FOCUSABLE)
842+
states.add(controlTypes.State.FOCUSED)
843843
return states
844844

845845
def _get_isContentEditable(self):
@@ -1075,7 +1075,7 @@ class V6ComboBox(IAccessible):
10751075

10761076
def event_valueChange(self):
10771077
focus = api.getFocusObject()
1078-
if controlTypes.STATE_FOCUSED not in self.states or focus.role != controlTypes.Role.COMBOBOX:
1078+
if controlTypes.State.FOCUSED not in self.states or focus.role != controlTypes.Role.COMBOBOX:
10791079
# This combo box is not focused.
10801080
return super(V6ComboBox, self).event_valueChange()
10811081
# This combo box is focused. However, the value change is not fired on the real focus object.
@@ -1121,7 +1121,7 @@ def _get_parent(self):
11211121
def _get_shouldAllowIAccessibleFocusEvent(self):
11221122
# We must override this because we override parent to skip the MSAAHTML Registered Handler client,
11231123
# which might have the focused state.
1124-
if controlTypes.STATE_FOCUSED in self.states:
1124+
if controlTypes.State.FOCUSED in self.states:
11251125
return True
11261126
parent = super(Body, self).parent
11271127
if not parent:

source/NVDAObjects/IAccessible/__init__.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ def findOverlayClasses(self,clsList):
440440
clsList.insert(0, FocusableUnfocusableContainer)
441441

442442
if hasattr(self, "IAccessibleTextObject"):
443-
if role==oleacc.ROLE_SYSTEM_TEXT or controlTypes.STATE_EDITABLE in self.states:
443+
if role==oleacc.ROLE_SYSTEM_TEXT or controlTypes.State.EDITABLE in self.states:
444444
clsList.append(EditableTextWithAutoSelectDetection)
445445

446446
# Use window class name and role to search for a class match in our static map.
@@ -495,7 +495,7 @@ def findOverlayClasses(self,clsList):
495495
from . import mozilla
496496
mozilla.findExtraOverlayClasses(self, clsList)
497497
elif self.event_objectID in (None,winUser.OBJID_CLIENT) and windowClassName.startswith('bosa_sdm'):
498-
if role==oleacc.ROLE_SYSTEM_GRAPHIC and controlTypes.STATE_FOCUSED in self.states:
498+
if role==oleacc.ROLE_SYSTEM_GRAPHIC and controlTypes.State.FOCUSED in self.states:
499499
from .msOffice import SDMSymbols
500500
clsList.append(SDMSymbols)
501501
else:
@@ -678,10 +678,10 @@ def _get_shouldAllowIAccessibleFocusEvent(self):
678678
@return: C{True} if the focus event should be allowed.
679679
@rtype: bool
680680
"""
681-
#this object or one of its ancestors must have state_focused.
681+
#this object or one of its ancestors must have State.FOCUSED.
682682
testObj = self
683683
while testObj:
684-
if controlTypes.STATE_FOCUSED in testObj.states:
684+
if controlTypes.State.FOCUSED in testObj.states:
685685
break
686686
parent = testObj.parent
687687
# Cache the parent.
@@ -876,8 +876,8 @@ def _get_states(self):
876876
IAccessible2States=self.IA2States
877877
states=states|set(IAccessibleHandler.IAccessible2StatesToNVDAStates[x] for x in (y for y in (1<<z for z in range(32)) if y&IAccessible2States) if x in IAccessibleHandler.IAccessible2StatesToNVDAStates)
878878
# Readonly should override editable
879-
if controlTypes.STATE_READONLY in states:
880-
states.discard(controlTypes.STATE_EDITABLE)
879+
if controlTypes.State.READONLY in states:
880+
states.discard(controlTypes.State.EDITABLE)
881881
try:
882882
IA2Attribs=self.IA2Attributes
883883
except COMError:
@@ -886,22 +886,22 @@ def _get_states(self):
886886
if IA2Attribs:
887887
grabbed = IA2Attribs.get("grabbed")
888888
if grabbed == "false":
889-
states.add(controlTypes.STATE_DRAGGABLE)
889+
states.add(controlTypes.State.DRAGGABLE)
890890
elif grabbed == "true":
891-
states.add(controlTypes.STATE_DRAGGING)
891+
states.add(controlTypes.State.DRAGGING)
892892
if IA2Attribs.get("dropeffect", "none") != "none":
893-
states.add(controlTypes.STATE_DROPTARGET)
893+
states.add(controlTypes.State.DROPTARGET)
894894
sorted = IA2Attribs.get("sort")
895895
if sorted=="ascending":
896-
states.add(controlTypes.STATE_SORTED_ASCENDING)
896+
states.add(controlTypes.State.SORTED_ASCENDING)
897897
elif sorted=="descending":
898-
states.add(controlTypes.STATE_SORTED_DESCENDING)
898+
states.add(controlTypes.State.SORTED_DESCENDING)
899899
elif sorted=="other":
900-
states.add(controlTypes.STATE_SORTED)
901-
if controlTypes.STATE_HASPOPUP in states and controlTypes.STATE_AUTOCOMPLETE in states:
902-
states.remove(controlTypes.STATE_HASPOPUP)
903-
if controlTypes.STATE_HALFCHECKED in states:
904-
states.discard(controlTypes.STATE_CHECKED)
900+
states.add(controlTypes.State.SORTED)
901+
if controlTypes.State.HASPOPUP in states and controlTypes.State.AUTOCOMPLETE in states:
902+
states.remove(controlTypes.State.HASPOPUP)
903+
if controlTypes.State.HALFCHECKED in states:
904+
states.discard(controlTypes.State.CHECKED)
905905
return states
906906

907907
re_positionInfoEncodedAccDescription=re.compile(r"L(?P<level>\d+)(?:, (?P<indexInGroup>\d+) of (?P<similarItemsInGroup>\d+))?")
@@ -1472,7 +1472,7 @@ def event_alert(self):
14721472
return
14731473
speech.speakObject(self, reason=controlTypes.OutputReason.FOCUS, priority=speech.Spri.NOW)
14741474
for child in self.recursiveDescendants:
1475-
if controlTypes.STATE_FOCUSABLE in child.states:
1475+
if controlTypes.State.FOCUSABLE in child.states:
14761476
speech.speakObject(child, reason=controlTypes.OutputReason.FOCUS, priority=speech.Spri.NOW)
14771477

14781478
def event_caret(self):
@@ -1674,7 +1674,7 @@ def windowHasExtraIAccessibles(cls,windowHandle):
16741674

16751675
def _get_presentationType(self):
16761676
states=self.states
1677-
if controlTypes.STATE_INVISIBLE in states or controlTypes.STATE_UNAVAILABLE in states:
1677+
if controlTypes.State.INVISIBLE in states or controlTypes.State.UNAVAILABLE in states:
16781678
return self.presType_unavailable
16791679
if not self.windowHasExtraIAccessibles(self.windowHandle):
16801680
return self.presType_layout
@@ -1845,7 +1845,7 @@ def _get_role(self):
18451845
return controlTypes.Role.ICON
18461846

18471847
def reportFocus(self):
1848-
if controlTypes.STATE_INVISIBLE in self.states:
1848+
if controlTypes.State.INVISIBLE in self.states:
18491849
return
18501850
super(TaskListIcon,self).reportFocus()
18511851

source/NVDAObjects/IAccessible/adobeAcrobat.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ class BadFocusStates(AcrobatNode):
224224

225225
def _get_states(self):
226226
states = super(BadFocusStates, self).states
227-
states.difference_update({controlTypes.STATE_FOCUSABLE, controlTypes.STATE_FOCUSED})
227+
states.difference_update({controlTypes.State.FOCUSABLE, controlTypes.State.FOCUSED})
228228
return states
229229

230230
def findExtraOverlayClasses(obj, clsList):
@@ -233,7 +233,7 @@ def findExtraOverlayClasses(obj, clsList):
233233
"""
234234
role = obj.role
235235
states = obj.states
236-
if role == controlTypes.Role.DOCUMENT or (role == controlTypes.Role.PAGE and controlTypes.STATE_READONLY in states):
236+
if role == controlTypes.Role.DOCUMENT or (role == controlTypes.Role.PAGE and controlTypes.State.READONLY in states):
237237
clsList.append(Document)
238238
elif obj.event_childID == 0 and obj.event_objectID == winUser.OBJID_CLIENT:
239239
# Other root node.
@@ -243,11 +243,11 @@ def findExtraOverlayClasses(obj, clsList):
243243
clsList.append(RootNode)
244244

245245
elif role == controlTypes.Role.EDITABLETEXT:
246-
if {controlTypes.STATE_READONLY, controlTypes.STATE_FOCUSABLE, controlTypes.STATE_LINKED} <= states:
246+
if {controlTypes.State.READONLY, controlTypes.State.FOCUSABLE, controlTypes.State.LINKED} <= states:
247247
# HACK: Acrobat sets focus states on text nodes beneath links,
248248
# making them appear as read only editable text fields.
249249
clsList.append(BadFocusStates)
250-
elif controlTypes.STATE_FOCUSABLE in states:
250+
elif controlTypes.State.FOCUSABLE in states:
251251
clsList.append(EditableTextNode)
252252

253253
clsList.append(AcrobatNode)

source/NVDAObjects/IAccessible/chromium.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ class ChromeVBufTextInfo(GeckoVBufTextInfo):
1919

2020
def _normalizeControlField(self, attrs):
2121
attrs = super()._normalizeControlField(attrs)
22-
if attrs['role'] == controlTypes.Role.TOGGLEBUTTON and controlTypes.STATE_CHECKABLE in attrs['states']:
22+
if attrs['role'] == controlTypes.Role.TOGGLEBUTTON and controlTypes.State.CHECKABLE in attrs['states']:
2323
# In Chromium, the checkable state is exposed erroneously on toggle buttons.
24-
attrs['states'].discard(controlTypes.STATE_CHECKABLE)
24+
attrs['states'].discard(controlTypes.State.CHECKABLE)
2525
return attrs
2626

2727

@@ -48,7 +48,7 @@ class Document(ia2Web.Document):
4848

4949
def _get_treeInterceptorClass(self):
5050
states = self.states
51-
if controlTypes.STATE_EDITABLE not in states and controlTypes.STATE_BUSY not in states:
51+
if controlTypes.State.EDITABLE not in states and controlTypes.State.BUSY not in states:
5252
return ChromeVBuf
5353
return super(Document, self).treeInterceptorClass
5454

@@ -60,7 +60,7 @@ class ComboboxListItem(IAccessible):
6060
def _get_focusRedirect(self):
6161
# Chrome 68 and below fires focus on the active list item of combo boxes even when the combo box is collapsed.
6262
# We get around this by redirecting focus back up to the combo box itself if the list inside is invisible (I.e. the combo box is collapsed).
63-
if self.parent and controlTypes.STATE_INVISIBLE in self.parent.states:
63+
if self.parent and controlTypes.State.INVISIBLE in self.parent.states:
6464
return self.parent.parent
6565

6666

@@ -69,7 +69,7 @@ class ToggleButton(ia2Web.Ia2Web):
6969
def _get_states(self):
7070
# In Chromium, the checkable state is exposed erroneously on toggle buttons.
7171
states = super().states
72-
states.discard(controlTypes.STATE_CHECKABLE)
72+
states.discard(controlTypes.State.CHECKABLE)
7373
return states
7474

7575

@@ -85,7 +85,7 @@ class PresentationalList(ia2Web.Ia2Web):
8585

8686
def _get_states(self):
8787
states = super().states
88-
states.add(controlTypes.STATE_READONLY)
88+
states.add(controlTypes.State.READONLY)
8989
return states
9090

9191

source/NVDAObjects/IAccessible/ia2Web.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ def _get_states(self):
6464
# Ensure that ARIA gridcells always get the focusable state, even if the Browser fails to provide it.
6565
# This is necessary for other code that calculates how selection of cells should be spoken.
6666
if 'gridcell' in self.IA2Attributes.get('xml-roles','').split(' '):
67-
states.add(controlTypes.STATE_FOCUSABLE)
67+
states.add(controlTypes.State.FOCUSABLE)
6868
# Google has a custom ARIA attribute to force a node's editable state off (such as in Google Slides).
6969
if self.IA2Attributes.get('goog-editable')=="false":
70-
states.discard(controlTypes.STATE_EDITABLE)
70+
states.discard(controlTypes.State.EDITABLE)
7171
return states
7272

7373
def _get_landmark(self):
@@ -109,7 +109,7 @@ class Document(Ia2Web):
109109
value = None
110110

111111
def _get_shouldCreateTreeInterceptor(self):
112-
return controlTypes.STATE_READONLY in self.states
112+
return controlTypes.State.READONLY in self.states
113113

114114
class Application(Document):
115115
shouldCreateTreeInterceptor = False
@@ -215,7 +215,7 @@ class Switch(Ia2Web):
215215

216216
def _get_states(self):
217217
states = super().states
218-
states.discard(controlTypes.STATE_PRESSED)
218+
states.discard(controlTypes.State.PRESSED)
219219
return states
220220

221221

0 commit comments

Comments
 (0)