3426dcfec2
Add tests for the GTK3 accessibility platform layer. These tests compare the internal LO representation with what is visible to the platform, and thus the user's accessibility tools. In most cases the tests are fairly trivial as LO's internals are not far off AT-SPI2's expectations. There are however notable exceptions like for example the text attributes, that have a wildly different representation and require more complex checks matching what LO's platform layer does, the other way around. These tests use libatspi2 directly, but as the C API is awful to work with regarding resource management, there are wrappers to handle the complexity using RAII. The resulting API is fairly trivial to use. As these tests require using the GTK3 VCL plugin and for the a11y tree to be visible to AT-SPI2, they are run under XVFB using a separate dbus session through dbus-launch. Working on this has already lead to reporting and/or solving some issues: * https://gerrit.libreoffice.org/c/core/+/151303 * https://gerrit.libreoffice.org/c/core/+/151650 * https://gerrit.libreoffice.org/c/core/+/152456 * https://gerrit.libreoffice.org/c/core/+/152457 * https://bugs.documentfoundation.org/show_bug.cgi?id=155625 * https://bugs.documentfoundation.org/show_bug.cgi?id=155705 * https://gerrit.libreoffice.org/c/core/+/152748 Only a subset of the a11y APIs are covered for the moment, but the current state should make it easy to extend upon. Change-Id: I1a047864ce8dc1f1bc3056ad00159f7fd5e5b7d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153069 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> |
||
---|---|---|
.. | ||
.gitignore | ||
config_atspi.h.in | ||
config_box2d.h.in | ||
config_buildconfig.h.in | ||
config_buildid.h.in | ||
config_cairo_canvas.h.in | ||
config_cairo_rgba.h.in | ||
config_clang.h.in | ||
config_crypto.h.in | ||
config_cxxabi.h.in | ||
config_dbus.h.in | ||
config_dconf.h.in | ||
config_eot.h.in | ||
config_extensions.h.in | ||
config_feature_desktop.h.in | ||
config_feature_opencl.h.in | ||
config_features.h.in | ||
config_firebird.h.in | ||
config_folders.h.in | ||
config_fonts.h.in | ||
config_fuzzers.h.in | ||
config_gio.h.in | ||
config_global.h.in | ||
config_gpgme.h.in | ||
config_java.h.in | ||
config_langs.h.in | ||
config_lgpl.h.in | ||
config_libcxx.h.in | ||
config_liblangtag.h.in | ||
config_locales.h.in | ||
config_mpl.h.in | ||
config_oauth2.h.in | ||
config_oox.h.in | ||
config_options.h.in | ||
config_options_calc.h.in | ||
config_poppler.h.in | ||
config_probes.h.in | ||
config_python.h.in | ||
config_skia.h.in | ||
config_typesizes.h.in | ||
config_validation.h.in | ||
config_vclplug.h.in | ||
config_vendor.h.in | ||
config_version.h.in | ||
config_wasm_strip.h.in | ||
config_writerperfect.h.in | ||
config_zxing.h.in | ||
README.md |
C/C++ Configuration Created by configure Script
These are configuration files for various features as detected by configure
.
Include only those files you need (in order to reduce rebuilds when a setting changes).
Settings here are only C/C++ #define
directives, so they apply only to C/C++ source,
not to Makefiles.
Adding a New Setting:
- do
AC_DEFINE(HAVE_FOO)
inconfigure.ac
when a setting should be set - choose the proper
config_host/config_XXX.h
file to use- if it is a global setting (such as availability of a compiler feature),
use
config_host/config_global.h
- otherwise check if there is a matching
config_host/config_XXX.h
file - if none matches, add a new one:
- add
config_host/config_XXX.h.in
here, with just#ifndef
include guard - add
AC_CONFIG_HEADERS([config_host/config_XXX.h])
next to the others inconfigure.ac
- add
- if it is a global setting (such as availability of a compiler feature),
use
- add
#define HAVE_FOO 0
to theconfig_host/config_XXX.h
, possibly with a comment (do not use#undef HAVE_FOO
, unless the setting has more values than on/off) - add
#include <config_XXX.h>
before any #ifHAVE_FOO
in a source file - make sure you use
#if HAVE_FOO
for on/off settings, do not use#ifdef