Skip to content

Commit 5408e6d

Browse files
authored
Merge 067a402 into 3c29f9a
2 parents 3c29f9a + 067a402 commit 5408e6d

58 files changed

Lines changed: 390 additions & 385 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
@@ -200,39 +200,39 @@
200200
}
201201

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

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

238238

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
@@ -445,7 +445,7 @@ def findOverlayClasses(self,clsList):
445445
clsList.insert(0, FocusableUnfocusableContainer)
446446

447447
if hasattr(self, "IAccessibleTextObject"):
448-
if role==oleacc.ROLE_SYSTEM_TEXT or controlTypes.STATE_EDITABLE in self.states:
448+
if role==oleacc.ROLE_SYSTEM_TEXT or controlTypes.State.EDITABLE in self.states:
449449
clsList.append(EditableTextWithAutoSelectDetection)
450450

451451
# Use window class name and role to search for a class match in our static map.
@@ -500,7 +500,7 @@ def findOverlayClasses(self,clsList):
500500
from . import mozilla
501501
mozilla.findExtraOverlayClasses(self, clsList)
502502
elif self.event_objectID in (None,winUser.OBJID_CLIENT) and windowClassName.startswith('bosa_sdm'):
503-
if role==oleacc.ROLE_SYSTEM_GRAPHIC and controlTypes.STATE_FOCUSED in self.states:
503+
if role==oleacc.ROLE_SYSTEM_GRAPHIC and controlTypes.State.FOCUSED in self.states:
504504
from .msOffice import SDMSymbols
505505
clsList.append(SDMSymbols)
506506
else:
@@ -683,10 +683,10 @@ def _get_shouldAllowIAccessibleFocusEvent(self):
683683
@return: C{True} if the focus event should be allowed.
684684
@rtype: bool
685685
"""
686-
#this object or one of its ancestors must have state_focused.
686+
#this object or one of its ancestors must have State.FOCUSED.
687687
testObj = self
688688
while testObj:
689-
if controlTypes.STATE_FOCUSED in testObj.states:
689+
if controlTypes.State.FOCUSED in testObj.states:
690690
break
691691
parent = testObj.parent
692692
# Cache the parent.
@@ -881,8 +881,8 @@ def _get_states(self):
881881
IAccessible2States=self.IA2States
882882
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)
883883
# Readonly should override editable
884-
if controlTypes.STATE_READONLY in states:
885-
states.discard(controlTypes.STATE_EDITABLE)
884+
if controlTypes.State.READONLY in states:
885+
states.discard(controlTypes.State.EDITABLE)
886886
try:
887887
IA2Attribs=self.IA2Attributes
888888
except COMError:
@@ -891,22 +891,22 @@ def _get_states(self):
891891
if IA2Attribs:
892892
grabbed = IA2Attribs.get("grabbed")
893893
if grabbed == "false":
894-
states.add(controlTypes.STATE_DRAGGABLE)
894+
states.add(controlTypes.State.DRAGGABLE)
895895
elif grabbed == "true":
896-
states.add(controlTypes.STATE_DRAGGING)
896+
states.add(controlTypes.State.DRAGGING)
897897
if IA2Attribs.get("dropeffect", "none") != "none":
898-
states.add(controlTypes.STATE_DROPTARGET)
898+
states.add(controlTypes.State.DROPTARGET)
899899
sorted = IA2Attribs.get("sort")
900900
if sorted=="ascending":
901-
states.add(controlTypes.STATE_SORTED_ASCENDING)
901+
states.add(controlTypes.State.SORTED_ASCENDING)
902902
elif sorted=="descending":
903-
states.add(controlTypes.STATE_SORTED_DESCENDING)
903+
states.add(controlTypes.State.SORTED_DESCENDING)
904904
elif sorted=="other":
905-
states.add(controlTypes.STATE_SORTED)
906-
if controlTypes.STATE_HASPOPUP in states and controlTypes.STATE_AUTOCOMPLETE in states:
907-
states.remove(controlTypes.STATE_HASPOPUP)
908-
if controlTypes.STATE_HALFCHECKED in states:
909-
states.discard(controlTypes.STATE_CHECKED)
905+
states.add(controlTypes.State.SORTED)
906+
if controlTypes.State.HASPOPUP in states and controlTypes.State.AUTOCOMPLETE in states:
907+
states.remove(controlTypes.State.HASPOPUP)
908+
if controlTypes.State.HALFCHECKED in states:
909+
states.discard(controlTypes.State.CHECKED)
910910
return states
911911

912912
re_positionInfoEncodedAccDescription=re.compile(r"L(?P<level>\d+)(?:, (?P<indexInGroup>\d+) of (?P<similarItemsInGroup>\d+))?")
@@ -1477,7 +1477,7 @@ def event_alert(self):
14771477
return
14781478
speech.speakObject(self, reason=controlTypes.OutputReason.FOCUS, priority=speech.Spri.NOW)
14791479
for child in self.recursiveDescendants:
1480-
if controlTypes.STATE_FOCUSABLE in child.states:
1480+
if controlTypes.State.FOCUSABLE in child.states:
14811481
speech.speakObject(child, reason=controlTypes.OutputReason.FOCUS, priority=speech.Spri.NOW)
14821482

14831483
def event_caret(self):
@@ -1679,7 +1679,7 @@ def windowHasExtraIAccessibles(cls,windowHandle):
16791679

16801680
def _get_presentationType(self):
16811681
states=self.states
1682-
if controlTypes.STATE_INVISIBLE in states or controlTypes.STATE_UNAVAILABLE in states:
1682+
if controlTypes.State.INVISIBLE in states or controlTypes.State.UNAVAILABLE in states:
16831683
return self.presType_unavailable
16841684
if not self.windowHasExtraIAccessibles(self.windowHandle):
16851685
return self.presType_layout
@@ -1850,7 +1850,7 @@ def _get_role(self):
18501850
return controlTypes.Role.ICON
18511851

18521852
def reportFocus(self):
1853-
if controlTypes.STATE_INVISIBLE in self.states:
1853+
if controlTypes.State.INVISIBLE in self.states:
18541854
return
18551855
super(TaskListIcon,self).reportFocus()
18561856

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
@@ -37,9 +37,9 @@ def _calculateDescriptionFrom(self, attrs) -> controlTypes.DescriptionFrom:
3737

3838
def _normalizeControlField(self, attrs):
3939
attrs = super()._normalizeControlField(attrs)
40-
if attrs['role'] == controlTypes.Role.TOGGLEBUTTON and controlTypes.STATE_CHECKABLE in attrs['states']:
40+
if attrs['role'] == controlTypes.Role.TOGGLEBUTTON and controlTypes.State.CHECKABLE in attrs['states']:
4141
# In Chromium, the checkable state is exposed erroneously on toggle buttons.
42-
attrs['states'].discard(controlTypes.STATE_CHECKABLE)
42+
attrs['states'].discard(controlTypes.State.CHECKABLE)
4343
return attrs
4444

4545

@@ -66,7 +66,7 @@ class Document(ia2Web.Document):
6666

6767
def _get_treeInterceptorClass(self):
6868
states = self.states
69-
if controlTypes.STATE_EDITABLE not in states and controlTypes.STATE_BUSY not in states:
69+
if controlTypes.State.EDITABLE not in states and controlTypes.State.BUSY not in states:
7070
return ChromeVBuf
7171
return super(Document, self).treeInterceptorClass
7272

@@ -78,7 +78,7 @@ class ComboboxListItem(IAccessible):
7878
def _get_focusRedirect(self):
7979
# Chrome 68 and below fires focus on the active list item of combo boxes even when the combo box is collapsed.
8080
# 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).
81-
if self.parent and controlTypes.STATE_INVISIBLE in self.parent.states:
81+
if self.parent and controlTypes.State.INVISIBLE in self.parent.states:
8282
return self.parent.parent
8383

8484

@@ -87,7 +87,7 @@ class ToggleButton(ia2Web.Ia2Web):
8787
def _get_states(self):
8888
# In Chromium, the checkable state is exposed erroneously on toggle buttons.
8989
states = super().states
90-
states.discard(controlTypes.STATE_CHECKABLE)
90+
states.discard(controlTypes.State.CHECKABLE)
9191
return states
9292

9393

@@ -103,7 +103,7 @@ class PresentationalList(ia2Web.Ia2Web):
103103

104104
def _get_states(self):
105105
states = super().states
106-
states.add(controlTypes.STATE_READONLY)
106+
states.add(controlTypes.State.READONLY)
107107
return states
108108

109109

source/NVDAObjects/IAccessible/ia2Web.py

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

8181
def _get_landmark(self):
@@ -117,7 +117,7 @@ class Document(Ia2Web):
117117
value = None
118118

119119
def _get_shouldCreateTreeInterceptor(self):
120-
return controlTypes.STATE_READONLY in self.states
120+
return controlTypes.State.READONLY in self.states
121121

122122
class Application(Document):
123123
shouldCreateTreeInterceptor = False
@@ -223,7 +223,7 @@ class Switch(Ia2Web):
223223

224224
def _get_states(self):
225225
states = super().states
226-
states.discard(controlTypes.STATE_PRESSED)
226+
states.discard(controlTypes.State.PRESSED)
227227
return states
228228

229229

0 commit comments

Comments
 (0)