[Libreoffice-commits] core.git: offapi/com officecfg/util toolkit/test vcl/osx vcl/unx winaccessibility/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Aug 14 10:07:03 UTC 2018


 offapi/com/sun/star/accessibility/AccessibleRole.idl          |   16 ++++++++--
 officecfg/util/AcceleratorKeyChecker.fodt                     |    4 ++
 toolkit/test/accessibility/tools/NameProvider.java            |    1 
 vcl/osx/a11yrolehelper.mm                                     |    3 +
 vcl/unx/gtk/a11y/atkwrapper.cxx                               |    6 +++
 winaccessibility/source/service/AccComponentEventListener.cxx |    1 
 winaccessibility/source/service/AccObject.cxx                 |    7 +++-
 winaccessibility/source/service/AccObjectWinManager.cxx       |    1 
 8 files changed, 35 insertions(+), 4 deletions(-)

New commits:
commit 4917430c1c5e8105987e81d65d31df21955ad60e
Author:     Samuel Thibault <sthibault at hypra.fr>
AuthorDate: Wed Aug 8 13:34:18 2018 +0200
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Tue Aug 14 12:06:41 2018 +0200

    tdf#116542 a11y: introduce STATIC role
    
    This should be used for brief non-editable text which is not meant to have a
    relation with another object (as opposed to text or label).
    
    Change-Id: I46bfa56042a51295e9fa0d332babdbb40668ff0b
    Reviewed-on: https://gerrit.libreoffice.org/58734
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl
index ca3b79bb8b5c..681da637052a 100644
--- a/offapi/com/sun/star/accessibility/AccessibleRole.idl
+++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl
@@ -248,6 +248,7 @@ constants AccessibleRole
     const short INTERNAL_FRAME = 29;
 
     /** An object used to present an icon or short string in an interface.
+        <p>See also TEXT and STATIC.</p>
     */
     const short LABEL = 30;
 
@@ -500,9 +501,9 @@ constants AccessibleRole
     /** Text role.
 
         <p>An object that presents text to the user. The text is usually
-        editable by the user as opposed to a label.</p>
+        editable by the user as opposed to a label or static text.</p>
 
-        <p>See also LABEL.</p>
+        <p>See also LABEL and STATIC.</p>
     */
     const short TEXT = 60;
 
@@ -729,6 +730,17 @@ constants AccessibleRole
     */
     const short DOCUMENT_TEXT = 85;
 
+    /** Static text role.
+
+        <p>An object that presents a brief amount of information to the user.
+           The text is not editable by the user as opposed to a text, and not
+           meant to have a relation with another object as opposed to a
+           label.</p>
+
+        <p>See also LABEL and TEXT.</p>
+    */
+    const short STATIC = 86;
+
 };
 
 }; }; }; };
diff --git a/officecfg/util/AcceleratorKeyChecker.fodt b/officecfg/util/AcceleratorKeyChecker.fodt
index 9ad75c1af685..e40928c28a10 100644
--- a/officecfg/util/AcceleratorKeyChecker.fodt
+++ b/officecfg/util/AcceleratorKeyChecker.fodt
@@ -221,6 +221,10 @@ Sub initializeRoleMap
 	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.TREE_TABLE, "TREE_TABLE")
 	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COMMENT, "COMMENT")
 	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.COMMENT_END, "COMMENT_END")
+	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DOCUMENT_PRESENTATION, "DOCUMENT_PRESENTATION")
+	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DOCUMENT_SPREADSHEET, "DOCUMENT_SPREADSHEET")
+	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.DOCUMENT_TEXT, "DOCUMENT_TEXT")
+	ROLEMAP.put (com.sun.star.accessibility.AccessibleRole.STATIC, "STATIC")
 End Sub
 
       </ooo:source-code>
diff --git a/toolkit/test/accessibility/tools/NameProvider.java b/toolkit/test/accessibility/tools/NameProvider.java
index d4055c7f4511..cc5ae469e57a 100644
--- a/toolkit/test/accessibility/tools/NameProvider.java
+++ b/toolkit/test/accessibility/tools/NameProvider.java
@@ -250,6 +250,7 @@ public class NameProvider
         maRoleMap.put (Integer.valueOf(AccessibleRole.SLIDER), "SLIDER");
         maRoleMap.put (Integer.valueOf(AccessibleRole.SPIN_BOX), "SPIN_BOX");
         maRoleMap.put (Integer.valueOf(AccessibleRole.SPLIT_PANE), "SPLIT_PANE");
+        maRoleMap.put (Integer.valueOf(AccessibleRole.STATIC), "STATIC");
         maRoleMap.put (Integer.valueOf(AccessibleRole.STATUS_BAR), "STATUS_BAR");
         maRoleMap.put (Integer.valueOf(AccessibleRole.TABLE), "TABLE");
         maRoleMap.put (Integer.valueOf(AccessibleRole.TABLE_CELL), "TABLE_CELL");
diff --git a/vcl/osx/a11yrolehelper.mm b/vcl/osx/a11yrolehelper.mm
index 2ce476b94c7d..0723fbc9c2d3 100644
--- a/vcl/osx/a11yrolehelper.mm
+++ b/vcl/osx/a11yrolehelper.mm
@@ -125,6 +125,7 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::DOCUMENT_PRESENTATION, NSAccessibilityGroupRole );
         MAP( AccessibleRole::DOCUMENT_SPREADSHEET, NSAccessibilityGroupRole );
         MAP( AccessibleRole::DOCUMENT_TEXT, NSAccessibilityGroupRole );
+        MAP( AccessibleRole::STATIC, NSAccessibilityStaticTextRole );
 
 #undef MAP
         default:
@@ -257,6 +258,8 @@ using namespace ::com::sun::star::uno;
         MAP( AccessibleRole::DOCUMENT_SPREADSHEET, @"" );
         MAP( AccessibleRole::DOCUMENT_TEXT, @"" );
 
+        MAP( AccessibleRole::STATIC, @"" );
+
 #undef MAP
         default:
             break;
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index 951c758eeac7..6a78dce933fb 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -284,11 +284,17 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
         , ATK_ROLE_DOCUMENT_PRESENTATION
         , ATK_ROLE_DOCUMENT_SPREADSHEET
         , ATK_ROLE_DOCUMENT_TEXT
+#if ATK_CHECK_VERSION(2,15,2)
+        , ATK_ROLE_STATIC
+#else
+        , ATK_ROLE_LABEL
+#endif
 #else
         //older version should fallback to DOCUMENT_FRAME role
         , ATK_ROLE_DOCUMENT_FRAME
         , ATK_ROLE_DOCUMENT_FRAME
         , ATK_ROLE_DOCUMENT_FRAME
+        , ATK_ROLE_LABEL
 #endif
     };
 
diff --git a/winaccessibility/source/service/AccComponentEventListener.cxx b/winaccessibility/source/service/AccComponentEventListener.cxx
index bdbf0c2c3d66..148331acf6cd 100644
--- a/winaccessibility/source/service/AccComponentEventListener.cxx
+++ b/winaccessibility/source/service/AccComponentEventListener.cxx
@@ -176,6 +176,7 @@ void AccComponentEventListener::SetComponentState(short state, bool enable)
             pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
             // 8. label should have no FOCUSABLE state, Firefox has READONLY state, we can also have.
             if (    GetRole() != AccessibleRole::LABEL
+                &&  GetRole() != AccessibleRole::STATIC
                 &&  GetRole() != AccessibleRole::SCROLL_BAR)
             {
                 pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx
index ed0ac90eebb7..eabed2cc219b 100644
--- a/winaccessibility/source/service/AccObject.cxx
+++ b/winaccessibility/source/service/AccObject.cxx
@@ -144,7 +144,8 @@ const short ROLE_TABLE[][2] =
         {COMMENT_END,               IA2_ROLE_TEXT_FRAME },
         {DOCUMENT_PRESENTATION,     ROLE_SYSTEM_DOCUMENT },
         {DOCUMENT_SPREADSHEET,      ROLE_SYSTEM_DOCUMENT },
-        {DOCUMENT_TEXT,             ROLE_SYSTEM_DOCUMENT }
+        {DOCUMENT_TEXT,             ROLE_SYSTEM_DOCUMENT },
+        {STATIC,                    IA2_ROLE_TEXT_FRAME }
     };
 
 
@@ -880,6 +881,7 @@ void AccObject::UpdateState()
         switch(m_accRole)
         {
         case LABEL:
+        case STATIC:
             m_pIMAcc->IncreaseState( STATE_SYSTEM_READONLY );
             break;
         case TEXT:
@@ -918,7 +920,8 @@ void AccObject::UpdateState()
 
         if(!(Role == FILLER || Role == END_NOTE || Role == FOOTER || Role == FOOTNOTE || Role == GROUP_BOX || Role == RULER
                 || Role == HEADER || Role == ICON || Role == INTERNAL_FRAME || Role == LABEL || Role == LAYERED_PANE
-                || Role == SCROLL_BAR || Role == SCROLL_PANE || Role == SPLIT_PANE || Role == STATUS_BAR || Role == TOOL_TIP))
+                || Role == SCROLL_BAR || Role == SCROLL_PANE || Role == SPLIT_PANE || Role == STATIC || Role == STATUS_BAR
+                || Role == TOOL_TIP))
         {
             if( SEPARATOR == Role  )
             {
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index d5557d685539..f1ec48216ecb 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -825,6 +825,7 @@ AccObjectWinManager::CreateAccEventListener(XAccessible* pXAcc)
         case /*AccessibleRole::*/CHECK_BOX:
         case /*AccessibleRole::*/ICON:
         case /*AccessibleRole::*/LABEL:
+        case /*AccessibleRole::*/STATIC:
         case /*AccessibleRole::*/MENU_ITEM:
         case /*AccessibleRole::*/CHECK_MENU_ITEM:
         case /*AccessibleRole::*/RADIO_MENU_ITEM:


More information about the Libreoffice-commits mailing list