tdf#167362 sw: fix footnote hang with JAWS

When moving the cursor to a line with a footnote, JAWS tries to retrieve
the text attributes, gets an E_FAIL, but never gives up trying again.

The problem is that some entirely undocumented magic number is stuffed
into an uno::Any as `long` but the "CharEscapement" property is actually
`short` and thus reading the property in
AccessibleTextAttributeHelper::ConvertUnoToIAccessible2TextAttributes()
throws and this is caught by CAccTextBase::get_attributes() and E_FAIL
is returned.

>	vcllo.dll!o3tl::doAccess<short>(const com::sun::star::uno::Any & any) Line 284
 	vcllo.dll!AccessibleTextAttributeHelper::ConvertUnoToIAccessible2TextAttributes(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & rUnoAttributes, IA2AttributeType eAttributeType) Line 271
 	vcllo.dll!AccessibleTextAttributeHelper::GetIAccessible2TextAttributes(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleText> xText, IA2AttributeType eAttributeType, long nOffset, long & rStartOffset, long & rEndOffset) Line 346
 	UAccCOM.dll!CAccTextBase::get_attributes(long offset, long * startOffset, long * endOffset, wchar_t * * textAttributes) Line 145
 	UAccCOM.dll!CAccText::get_attributes(long offset, long * startOffset, long * endOffset, wchar_t * * textAttributes) Line 54
 	FSDomNodeSymphony.dll!00007ff93f0fea12()
            ^ JAWS

Change-Id: I6c487f9d2db462b787034df3d5ba2f2822d14746
(cherry picked from commit 776662481583935ca148930de1e91ea499c53b3a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194737
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins
This commit is contained in:
Michael Stahl
2025-11-28 09:56:24 +01:00
parent b2c03ef9c7
commit e3a9530f29
+1 -1
View File
@@ -1827,7 +1827,7 @@ void SwAccessibleParagraph::_correctValues( const sal_Int32 nIndex,
{
if ( GetPortionData().IsIndexInFootnode(nIndex) )
{
rValue.Value <<= sal_Int32(101);
rValue.Value <<= sal_Int16(101);
}
continue;
}