diff options
author | Samuel Thibault <sthibault@hypra.fr> | 2018-08-08 13:34:18 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-08-14 12:06:41 +0200 |
commit | 4917430c1c5e8105987e81d65d31df21955ad60e (patch) | |
tree | 83d242a3cb224327e5f984d6e093b47725e21f44 | |
parent | ed77565f1487ed93e2557b562c10e0f4e8673c6a (diff) |
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@CIB.de>
-rw-r--r-- | offapi/com/sun/star/accessibility/AccessibleRole.idl | 16 | ||||
-rw-r--r-- | officecfg/util/AcceleratorKeyChecker.fodt | 4 | ||||
-rw-r--r-- | toolkit/test/accessibility/tools/NameProvider.java | 1 | ||||
-rw-r--r-- | vcl/osx/a11yrolehelper.mm | 3 | ||||
-rw-r--r-- | vcl/unx/gtk/a11y/atkwrapper.cxx | 6 | ||||
-rw-r--r-- | winaccessibility/source/service/AccComponentEventListener.cxx | 1 | ||||
-rw-r--r-- | winaccessibility/source/service/AccObject.cxx | 7 | ||||
-rw-r--r-- | winaccessibility/source/service/AccObjectWinManager.cxx | 1 |
8 files changed, 35 insertions, 4 deletions
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: |