summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacobo Aragunde PĂ©rez <jaragunde@igalia.com>2014-02-03 19:08:31 +0100
committerMichael Meeks <michael.meeks@collabora.com>2014-06-10 16:33:57 +0100
commitb977c542b16e3789d93d1c3b261288634e29f718 (patch)
treef69cfd30b53c92dcbbaf82242bad6529cbb5a2b5
parentfa9ceadbd339b8adff1db7e8c0661dc05229608e (diff)
fdo#39944: Add DOCUMENT_* accessibility UNO roles
Added a set of UNO accessibility roles for specific kinds of documents: * DOCUMENT_PRESENTATION for Impress * DOCUMENT_SPREADSHEET for Calc * DOCUMENT_TEXT for Writer The other applications still use the existing DOCUMENT role. These roles translates directly to ATK but in the other toolkits we keep using the same association that DOCUMENT role had. Change-Id: Ibac47527e5effdecb28d2314cde8558cf4fb010a Reviewed-on: https://gerrit.libreoffice.org/7847 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleRole.idl24
-rw-r--r--offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl6
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl2
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl2
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl2
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentView.idl2
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocumentBase.cxx2
-rw-r--r--sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx5
-rw-r--r--svx/source/accessibility/AccessibleShape.cxx5
-rw-r--r--sw/source/core/access/acccontext.cxx6
-rw-r--r--sw/source/core/access/accdoc.cxx2
-rw-r--r--vcl/aqua/source/a11y/aqua11yrolehelper.mm8
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.cxx5
-rw-r--r--winaccessibility/source/UAccCOM/MAccessible.cxx3
-rw-r--r--winaccessibility/source/service/AccObjectWinManager.cxx5
-rw-r--r--winaccessibility/source/service/AccTopWindowListener.cxx5
16 files changed, 67 insertions, 17 deletions
diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl
index 2baa6a992611..ca3b79bb8b5c 100644
--- a/offapi/com/sun/star/accessibility/AccessibleRole.idl
+++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl
@@ -705,6 +705,30 @@ constants AccessibleRole
*/
const short COMMENT_END = 82;
+ /** View of an presentation document.
+
+ <p>It's an specific variation of DOCUMENT for presentations.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_PRESENTATION = 83;
+
+ /** View of an spreadsheet document.
+
+ <p>It's an specific variation of DOCUMENT for spreadsheets.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_SPREADSHEET = 84;
+
+ /** View of an text document.
+
+ <p>It's an specific variation of DOCUMENT for text.</p>
+
+ @since LibreOffice 4.3
+ */
+ const short DOCUMENT_TEXT = 85;
+
};
}; }; }; };
diff --git a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
index 1c3c3fa289fd..9dcf863142b0 100644
--- a/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
+++ b/offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl
@@ -69,8 +69,10 @@ service AccessibleDrawDocumentView
<p>You can access the following information:
<ul>
- <li>Role: The object's role is
- com::sun::star::accessibility::AccessibleRole::DOCUMENT.</li>
+ <li>Role: The object's role might be
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT or
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION
+ , the former for a Draw and the latter for an Impress document.</li>
<li>Name: Its name is "AccessibleDrawDocumentView",
"AccessibleOutlineView", or "slide window".</li>
<li>Description: The description is "Draw Document", "Accessible
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
index 77939c957f83..7b0d7fe51771 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl
@@ -92,7 +92,7 @@ service AccessibleSpreadsheetDocumentView
</ul>
<li>The description is ???.</li>
<li>The name is Spreadsheet Document View with a unique number.</li>
- <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+ <li>The role is ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
<li>There are no relations.</li>
<li>The following states are supported:
<ul>
diff --git a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
index 767392718a92..6ff4454b04be 100644
--- a/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
+++ b/offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl
@@ -96,7 +96,7 @@ service AccessibleSpreadsheetPageView
<li>The description is ???.</li>
<li>The name is Spreadsheet Document Page Preview.</li>
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT</li>
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET</li>
<li>There are no relations.</li>
<li>The following states are supported:
<ul>
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
index cfe22fe76e99..5a6ace720b0b 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl
@@ -47,7 +47,7 @@ service AccessibleTextDocumentPageView
returns an object that supports one of the service
::com::sun::star::text::AccessiblePageView.
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
<li>The name is "document view" (or the equivalent term
in application's language).
<li>The description also is "document view" (or the equivalent term
diff --git a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
index 4d4acf4a151f..818b18eeea53 100644
--- a/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
+++ b/offapi/com/sun/star/text/AccessibleTextDocumentView.idl
@@ -129,7 +129,7 @@ service AccessibleTextDocumentView
but also keep the z order.
</ul>
<li>The role is
- ::com::sun::star::accessibility::AccessibleRole::DOCUMENT.
+ ::com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT.
<li>The name is "document view" (or the equivalent term
in application's language).
<li>The description also is "document view" (or the equivalent term
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
index 12435ea038b1..3b32481933a1 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentBase.cxx
@@ -28,7 +28,7 @@ using namespace ::com::sun::star::accessibility;
ScAccessibleDocumentBase::ScAccessibleDocumentBase(
const uno::Reference<XAccessible>& rxParent)
- : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT)
+ : ScAccessibleContextBase(rxParent, AccessibleRole::DOCUMENT_SPREADSHEET)
{
}
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index cd41a1e50b7b..22ebca3ba503 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -63,7 +63,10 @@ AccessibleDocumentViewBase::AccessibleDocumentViewBase (
::sd::ViewShell* pViewShell,
const uno::Reference<frame::XController>& rxController,
const uno::Reference<XAccessible>& rxParent)
- : AccessibleContextBase (rxParent, AccessibleRole::DOCUMENT),
+ : AccessibleContextBase (rxParent,
+ pViewShell->GetDoc()->GetDocumentType() == DOCUMENT_TYPE_IMPRESS ?
+ AccessibleRole::DOCUMENT_PRESENTATION :
+ AccessibleRole::DOCUMENT),
mpWindow (pSdWindow),
mxController (rxController),
mxModel (NULL),
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index fa36b9c1e2e5..47d951d24d53 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -1531,7 +1531,10 @@ throw (uno::RuntimeException)
}
::com::sun::star::uno::Reference<XAccessibleContext> xParentContext = xParent->getAccessibleContext();
- if( xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT)//Document
+ if( xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_PRESENTATION ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_SPREADSHEET ||
+ xParentContext->getAccessibleRole() == AccessibleRole::DOCUMENT_TEXT )//Document
{
Reference< XAccessibleGroupPosition > xGroupPosition( xParent,uno::UNO_QUERY );
if ( xGroupPosition.is() )
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index 893c63c286df..9c1c8f0302b1 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -547,7 +547,7 @@ sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount( void )
CHECK_FOR_DEFUNC( XAccessibleContext )
//Notify the frame is a document
- if( nRole == AccessibleRole::DOCUMENT )
+ if( nRole == AccessibleRole::DOCUMENT_TEXT )
bIsAccDocUse = sal_True;
return bDisposing ? 0 : GetChildCount( *(GetMap()) );
@@ -562,7 +562,7 @@ uno::Reference< XAccessible> SAL_CALL
CHECK_FOR_DEFUNC( XAccessibleContext )
//Notify the frame is a document
- if( nRole == AccessibleRole::DOCUMENT )
+ if( nRole == AccessibleRole::DOCUMENT_TEXT )
bIsAccDocUse = sal_True;
const SwAccessibleChild aChild( GetChild( *(GetMap()), nIndex ) );
@@ -581,7 +581,7 @@ uno::Reference< XAccessible> SAL_CALL
::rtl::Reference < SwAccessibleContext > xChildImpl(
GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing ) );
//Send out accessible event when begin load.
- if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT )
+ if( bBeginDocumentLoad && nRole == AccessibleRole::DOCUMENT_TEXT )
{
FireStateChangedEvent( AccessibleStateType::FOCUSABLE,sal_True );
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index 74036086e1ea..f53018495b40 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -71,7 +71,7 @@ using lang::IndexOutOfBoundsException;
// SwAccessiblePreview
SwAccessibleDocumentBase::SwAccessibleDocumentBase ( SwAccessibleMap *_pMap ) :
- SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT,
+ SwAccessibleContext( _pMap, AccessibleRole::DOCUMENT_TEXT,
_pMap->GetShell()->GetLayout() ),
mxParent( _pMap->GetShell()->GetWin()->GetAccessibleParentWindow()->GetAccessible() ),
mpChildWin( 0 )
diff --git a/vcl/aqua/source/a11y/aqua11yrolehelper.mm b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
index 2ee62af95073..cd626fac65df 100644
--- a/vcl/aqua/source/a11y/aqua11yrolehelper.mm
+++ b/vcl/aqua/source/a11y/aqua11yrolehelper.mm
@@ -122,6 +122,10 @@ using namespace ::com::sun::star::uno;
MAP( AccessibleRole::TREE_ITEM, NSAccessibilityUnknownRole );
MAP( AccessibleRole::TREE_TABLE, NSAccessibilityUnknownRole );
+ MAP( AccessibleRole::DOCUMENT_PRESENTATION, NSAccessibilityGroupRole );
+ MAP( AccessibleRole::DOCUMENT_SPREADSHEET, NSAccessibilityGroupRole );
+ MAP( AccessibleRole::DOCUMENT_TEXT, NSAccessibilityGroupRole );
+
#undef MAP
default:
break;
@@ -249,6 +253,10 @@ using namespace ::com::sun::star::uno;
MAP( AccessibleRole::TREE_ITEM, @"" );
MAP( AccessibleRole::TREE_TABLE, @"" );
+ MAP( AccessibleRole::DOCUMENT_PRESENTATION, @"" );
+ MAP( AccessibleRole::DOCUMENT_SPREADSHEET, @"" );
+ MAP( AccessibleRole::DOCUMENT_TEXT, @"" );
+
#undef MAP
default:
break;
diff --git a/vcl/unx/gtk/a11y/atkwrapper.cxx b/vcl/unx/gtk/a11y/atkwrapper.cxx
index a568953275dc..cdc807668d62 100644
--- a/vcl/unx/gtk/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk/a11y/atkwrapper.cxx
@@ -270,7 +270,10 @@ static AtkRole mapToAtkRole( sal_Int16 nRole )
ATK_ROLE_UNKNOWN, // TREE_ITEM - registered below
ATK_ROLE_TREE_TABLE,
ATK_ROLE_SCROLL_PANE, // COMMENT - mapped to atk_role_scroll_pane
- ATK_ROLE_UNKNOWN // COMMENT_END - mapped to atk_role_unknown
+ ATK_ROLE_UNKNOWN, // COMMENT_END - mapped to atk_role_unknown
+ ATK_ROLE_DOCUMENT_PRESENTATION,
+ ATK_ROLE_DOCUMENT_SPREADSHEET,
+ ATK_ROLE_DOCUMENT_TEXT
};
static bool initialized = false;
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx
index 50b5a358dc7f..3f32fb6869a2 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -1964,7 +1964,8 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __
*similarItemsInGroup = 0;
*positionInGroup = 0;
- if (Role != AccessibleRole::DOCUMENT)
+ if (Role != AccessibleRole::DOCUMENT && Role != AccessibleRole::DOCUMENT_PRESENTATION &&
+ Role != AccessibleRole::DOCUMENT_SPREADSHEET && Role != AccessibleRole::DOCUMENT_TEXT)
{
Reference< XAccessibleGroupPosition > xGroupPosition( pRContext, UNO_QUERY );
if ( xGroupPosition.is() )
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index 15c9f9cc9399..3392d0a86b01 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -603,7 +603,10 @@ sal_Bool AccObjectWinManager::InsertChildrenAccObj( com::sun::star::accessibilit
short role = pRContext->getAccessibleRole();
- if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+ if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
{
if(IsStateManageDescendant(pXAcc))
{
diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx b/winaccessibility/source/service/AccTopWindowListener.cxx
index db87f23f0bf5..df30a1a4dcd1 100644
--- a/winaccessibility/source/service/AccTopWindowListener.cxx
+++ b/winaccessibility/source/service/AccTopWindowListener.cxx
@@ -156,7 +156,10 @@ void AccTopWindowListener::AddAllListeners(com::sun::star::accessibility::XAcces
short role = pAccessibleContext->getAccessibleRole();
- if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role )
+ if(com::sun::star::accessibility::AccessibleRole::DOCUMENT == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_PRESENTATION == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_SPREADSHEET == role ||
+ com::sun::star::accessibility::AccessibleRole::DOCUMENT_TEXT == role)
{
if(accManagerAgent.IsStateManageDescendant(pAccessible))
{