https://bugs.freedesktop.org/show_bug.cgi?id=71946

--- Comment #4 from Michael Meeks <[email protected]> ---
If you have enabled experimental mode, and you have an AT running [!!!] that
requests the accessiblity handle from the app - *then* and only then will the
IA2 support be used.

> I am unable to force the IAccessible2 AT support to activate with any
> combination of LibreOffice registry or Windows registry configuration.

IMHO we would do better to work out why it is not activating than trying to add
odd extra user configuration settings :-) it should "just work".

> or possibly set IAccessible2 active by default in some fashion--making the
> JAB based AT the alternate.

JAB is only activated -after- the IAccessible2 work fails to launch / activate
/ work.

Having said that IAcc2 has a check to ensure that there is an AT running that
requests, that code is here [ wow it has moved into a super-ugly #ifdef WNT
when I had moved it nicely into the component itself which would simply refuse
to activate if there was no AT registered - is there a reason for that Michael
? ]

#ifdef _WIN32
            bool bTryIAcc2 = (
officecfg::Office::Common::Misc::ExperimentalMode::get( xContext ) &&
                               !getenv ("SAL_DISABLE_IACCESSIBLE2") );

            if ( bTryIAcc2 ) // Windows only really
            {
                if (!HasAtHook() && !getenv("SAL_FORCE_IACCESSIBLE2"))
                {
                    SAL_INFO("vcl", "Apparently no running AT -> "
                            "not enabling IAccessible2 integration");
                }
                else
                {
                    try {
                        pSVData->mxAccessBridge
                            =
css::accessibility::MSAAService::create(xContext);
                        SAL_INFO("vcl", "got IAccessible2 bridge");
                        return true;
                    } catch (css::uno::DeploymentException & e) {
                        SAL_INFO(
                            "vcl",
                            "got no IAccessible2 bridge, \"" << e.Message
                                << "\", falling back to java");
                    }
                }
            }
            else
                SAL_INFO( "vcl", "IAccessible2 disabled, falling back to java"
);
#endif

cf. svdata.cxx

#ifdef _WIN32
bool HasAtHook()
{
    BOOL bIsRunning = FALSE;
    // pvParam must be BOOL
    return SystemParametersInfo(SPI_GETSCREENREADER, 0, &bIsRunning, 0)
        && bIsRunning;
}
#endif

My suspicion would be using something that is not registered as a running
screenreader and falling into that pit ? [ such as an at-poke type tool ? ]

Michael - why did we re-instate this horrible 'HasAtHook' and a ton of
conditionals there ? Why have a:

#ifdef _WIN32
bool HasAtHook()

#ifdef inside the windows backend ? or did I screw something up there ? it
seemed to belong elegantly inside the (windows specific) winaccessibility
component - surely ?

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to