From b4009daccd11e416865efd5fd3c205c46691bb12 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Thu, 2 May 2019 17:24:30 +0200 Subject: tdf#124400 a11y: add accessible ID Such ID is not meant to be presented to the user, but to be an ID which is stable over application development. Typically, this is the gtkbuilder ID. Such an ID can then be used to identify a given well-known accessible object independently from the current locale, user-visible labelling, or dialog structure. This can then be used for tailored screen reading (e.g. automatically announcing the content of a well-known object), or for automatic regression testing (to check the behavior of well-known objects). Uniqueness within the window is thus desirable when returning a non-empty string. This adds XAccessibleXContext2 to augment XAccessibleXContext with getAccessibleId(). The VCL implementation just takes Window::get_id(), i.e. the gtkbuilder id, which is enough for most use cases for now. atk_object_wrapper_new then passes it to atk_object_set_accessible_id() for AT-SPI technologies to pick it up. Change-Id: Iea0ad08d036e539dbcfec1a9be026c8da8d17357 Reviewed-on: https://gerrit.libreoffice.org/71743 Reviewed-by: Stephan Bergmann Tested-by: Jenkins --- offapi/UnoApi_offapi.mk | 1 + .../sun/star/accessibility/XAccessibleContext2.idl | 56 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 offapi/com/sun/star/accessibility/XAccessibleContext2.idl (limited to 'offapi') diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index a1ffab05d2e8..4c79c9d04328 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -1634,6 +1634,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/accessibility,\ XAccessibleAction \ XAccessibleComponent \ XAccessibleContext \ + XAccessibleContext2 \ XAccessibleEditableText \ XAccessibleEventBroadcaster \ XAccessibleEventListener \ diff --git a/offapi/com/sun/star/accessibility/XAccessibleContext2.idl b/offapi/com/sun/star/accessibility/XAccessibleContext2.idl new file mode 100644 index 000000000000..e9d4feae1021 --- /dev/null +++ b/offapi/com/sun/star/accessibility/XAccessibleContext2.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_accessibility_XAccessibleContext2_idl__ +#define __com_sun_star_accessibility_XAccessibleContext2_idl__ + +module com { module sun { module star { module accessibility { + +/** Implement this interface for exposing more aspects of a class's + content. + +

This is an extension of XAccessibleContext to add getAccessibleId().

+ + @since LibreOffice 6.3 +*/ +interface XAccessibleContext2 : ::com::sun::star::accessibility::XAccessibleContext +{ + /** Return the object's identifier. + +

This is not meant to be presented to the user, but to be an ID + which is stable over application development. Typically, this is + the gtkbuilder ID. Such an ID can then be used to identify a given + well-known accessible object independently from the current locale, + user-visible labelling, or dialog structure. This can then be used for + tailored screen reading (e.g. automatically announcing the content of a + well-known object), or for automatic regression testing (to check the + behavior of well-known objects). Uniqueness within the window is thus + desirable when returning a non-empty string.

+ + @return + The returned string is the object's identifier. + */ + string getAccessibleId (); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit