https://bugs.documentfoundation.org/show_bug.cgi?id=123864

Michael Weghorn <m.wegh...@posteo.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|libreoffice-b...@lists.free |m.wegh...@posteo.de
                   |desktop.org                 |
             Status|NEW                         |ASSIGNED

--- Comment #21 from Michael Weghorn <m.wegh...@posteo.de> ---
(In reply to Michael Weghorn from comment #18)
> Bold/italic buttons have role ATSPI_ROLE_TOGGLE_BUTTON, while the underline
> button has ATSPI_ROLE_PUSH_BUTTON. All of them have a "checked" state set
> when active, so likely Orca has special handling for toggle buttons here.

Indeed, Orca has this in `src/orca/scripts/apps/soffice/speech_generator.py`


        def _generateToggleState(self, obj, **args):
            """Treat toggle buttons in the toolbar specially. This is so we can
            have more natural sounding speech such as "bold on", "bold off",
etc."""
            result = []
            role = args.get('role', AXObject.get_role(obj))
            if role == Atspi.Role.TOGGLE_BUTTON \
                and AXObject.get_role(AXObject.get_parent(obj)) ==
Atspi.Role.TOOL_BAR:
                if AXUtilities.is_checked(obj):
                    result.append(messages.ON)
                else:
                    result.append(messages.OFF)
                result.extend(self.voice(speech_generator.SYSTEM, obj=obj,
**args))
            elif role == Atspi.Role.TOGGLE_BUTTON:
               
result.extend(speech_generator.SpeechGenerator._generateToggleState(
                    self, obj, **args))
            return result

Since the Underline button can be checked/unchecked (or pressed/not pressed), I
think that using the TOGGLE_BUTTON role for it (and other toolbar buttons with
similar behavior) seems reasonable (at least for the AT-SPI case). I've started
working on this, but noticed a few additional things that need some work while
doing that.

In addition, Qt currently doesn't have an equivalent for the TOGGLE_BUTTON
role, and was not mapping the CHECKABLE state to AT-SPI, so that also needs
changes on Qt side. First one:
https://codereview.qt-project.org/c/qt/qtbase/+/517844

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to