diff --git a/source/config/configSpec.py b/source/config/configSpec.py index 6e95716537f..abf831c0caf 100644 --- a/source/config/configSpec.py +++ b/source/config/configSpec.py @@ -225,6 +225,9 @@ # 0:default, 1:Only when necessary, 2:yes, 3:no allowInChromium = integer(0, 3, default=0) +[annotations] + reportDetails = boolean(default=false) + [terminals] speakPasswords = boolean(default=false) keyboardSupportInLegacy = boolean(default=True) diff --git a/source/gui/settingsDialogs.py b/source/gui/settingsDialogs.py index 18321a33176..e5231d70e3a 100644 --- a/source/gui/settingsDialogs.py +++ b/source/gui/settingsDialogs.py @@ -2640,6 +2640,22 @@ def __init__(self, parent): self.UIAInChromiumCombo.SetSelection(config.conf["UIA"]["allowInChromium"]) self.UIAInChromiumCombo.defaultValue = self._getDefaultValue(["UIA", "allowInChromium"]) + # Translators: This is the label for a group of advanced options in the + # Advanced settings panel + label = _("Annotations") + AnnotationsSizer = wx.StaticBoxSizer(wx.VERTICAL, self, label=label) + AnnotationsBox = AnnotationsSizer.GetStaticBox() + AnnotationsGroup = guiHelper.BoxSizerHelper(self, sizer=AnnotationsSizer) + self.bindHelpEvent("Annotations", AnnotationsBox) + sHelper.addItem(AnnotationsGroup) + + # Translators: This is the label for a checkbox in the + # Advanced settings panel. + label = _("Report details in browse mode") + self.annotationsDetailsCheckBox = AnnotationsGroup.addItem(wx.CheckBox(AnnotationsBox, label=label)) + self.annotationsDetailsCheckBox.SetValue(config.conf["annotations"]["reportDetails"]) + self.annotationsDetailsCheckBox.defaultValue = self._getDefaultValue(["annotations", "reportDetails"]) + # Translators: This is the label for a group of advanced options in the # Advanced settings panel label = _("Terminal programs") @@ -2812,6 +2828,7 @@ def haveConfigDefaultsBeenRestored(self): and self.diffAlgoCombo.GetSelection() == self.diffAlgoCombo.defaultValue and self.caretMoveTimeoutSpinControl.GetValue() == self.caretMoveTimeoutSpinControl.defaultValue and set(self.logCategoriesList.CheckedItems) == set(self.logCategoriesList.defaultCheckedItems) + and self.annotationsDetailsCheckBox.IsChecked() == self.annotationsDetailsCheckBox.defaultValue and True # reduce noise in diff when the list is extended. ) @@ -2827,6 +2844,7 @@ def restoreToDefaults(self): self.keyboardSupportInLegacyCheckBox.SetValue(self.keyboardSupportInLegacyCheckBox.defaultValue) self.diffAlgoCombo.SetSelection(self.diffAlgoCombo.defaultValue == 'auto') self.caretMoveTimeoutSpinControl.SetValue(self.caretMoveTimeoutSpinControl.defaultValue) + self.annotationsDetailsCheckBox.SetValue(self.annotationsDetailsCheckBox.defaultValue) self.logCategoriesList.CheckedItems = self.logCategoriesList.defaultCheckedItems self._defaultsRestored = True @@ -2849,6 +2867,7 @@ def onSave(self): self.diffAlgoVals[diffAlgoChoice] ) config.conf["editableText"]["caretMoveTimeoutMs"]=self.caretMoveTimeoutSpinControl.GetValue() + config.conf["annotations"]["reportDetails"] = self.annotationsDetailsCheckBox.IsChecked() for index,key in enumerate(self.logCategories): config.conf['debugLog'][key]=self.logCategoriesList.IsChecked(index) diff --git a/user_docs/en/userGuide.t2t b/user_docs/en/userGuide.t2t index c22198ed92d..11b0a488a27 100644 --- a/user_docs/en/userGuide.t2t +++ b/user_docs/en/userGuide.t2t @@ -1849,6 +1849,14 @@ The combo box has the following options: - No: Don't use UIA, even if NVDA is unable to inject in process. This may be useful for developers debugging issues with IA2 and want to ensure that NVDA does not fall back to UIA. - +==== Enable Experimental ARIA annotations support ====[Annotations] +Used to enable features which add experimental support for ARIA annotations. +Some of these features may be incomplete. +The following options exist: +- "Report details in browse mode": enables reporting if an object has details in browse mode. +Reporting the summary of those details can be done by assigning a gesture using the [Input Gestures dialog #InputGestures]. +- + ==== Use UI automation to access Microsoft Excel spreadsheet controls when available ====[UseUiaForExcel] When this option is enabled, NVDA will try to use the Microsoft UI Automation accessibility API in order to fetch information from Microsoft Excel Spreadsheet controls. This is an experimental feature, and some features of Microsoft Excel may not be available in this mode.