sc/source/ui/Accessibility/AccessibleContextBase.cxx         |   51 +-
 sc/source/ui/Accessibility/AccessibleDocument.cxx            |  107 +-----
 sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx |   71 ----
 sc/source/ui/Accessibility/AccessiblePageHeader.cxx          |   25 -
 sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx      |    5 
 sc/source/ui/Accessibility/AccessiblePreviewTable.cxx        |    5 
 sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx         |  194 +++--------
 sc/source/ui/Accessibility/AccessibleTableBase.cxx           |    7 
 sc/source/ui/inc/AccessibleContextBase.hxx                   |    6 
 9 files changed, 145 insertions(+), 326 deletions(-)

New commits:
commit b997fd92359c00bb91fd3d25bf992c4b3cd82543
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Apr 9 14:44:35 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Apr 10 11:31:49 2025 +0200

    sc a11y: Deduplicate code for AccessibleEventObject creation
    
    Change ScAccessibleContextBase::CommitChange
    from taking a `const AccessibleEventObject&`
    param to taking the parameters needed to
    create an AccessibleEventObject instead and
    create that event in ScAccessibleContextBase::CommitChange
    instead of having all callers do that themselves.
    
    This also aligns this with
    OAccessibleComponentHelper::NotifyAccessibleEvent
    and therefore prepares for turning
    ScAccessibleContextBase into an OAccessibleComponentHelper
    subclass in an upcoming commit, to further deduplicate
    XAccessibleEventBroadcaster and XAccessibleComponent
    implementations.
    
    For most cases, the event being created should be
    unchanged, with few exceptions for cases that looked a
    bit suspicious:
    
    1) In ScAccessibleSpreadsheet::NotifyRefMode, a single
    event object was created and then reused multiple times,
    with just adjusting some of the members. While that
    is fine in general, the AccessibleEventObject::OldValue
    being set to the old/previous formula cell doesn't make
    sense for the AccessibleEventId::SELECTION_CHANGED_WITHIN
    and AccessibleEventId::SELECTION_CHANGED_ADD events, so
    it is no longer set there. (For other events, the
    doc in offapi/com/sun/star/accessibility/AccessibleEventId.idl
    also doesn't always document an `OldValue` to be set
    (or even says it should be empty), but at a quick glance,
    winaccessibility might still process it if set, so leave
    it in place for now.
    (This should potentially be revisited independently, not
    as part of a change like this that intends to not change
    behavior for end users.)
    
    2) In ScAccessibleSpreadsheet::Notify, pass an
    empty/default-constructed uno::Any for the OldValue
    of the AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS
    event instead of an emtpy reference. The only handler in
    AccDescendantManagerEventListener::HandleChildChangedNoFocusEvent
    handles both the same way.
    Similar for any events further down where the OldValue
    would still be set as it's not explicitly unset.
    
    No change in user-observable behavior was noticed in a quick test
    of Calc with Orca and Accerciser and the gtk3 and qt6 VCL plugins
    on Linux with this commit in place.
    
    Change-Id: Ida3264b0935f544d4ce787b71684af148e47f86b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183931
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/sc/source/ui/Accessibility/AccessibleContextBase.cxx 
b/sc/source/ui/Accessibility/AccessibleContextBase.cxx
index 03b4b16a7fe3..99707cdd4517 100644
--- a/sc/source/ui/Accessibility/AccessibleContextBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleContextBase.cxx
@@ -284,15 +284,11 @@ OUString SAL_CALL
 
         if (msDescription != sDescription)
         {
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::DESCRIPTION_CHANGED;
-            aEvent.Source = uno::Reference< XAccessibleContext >(this);
-            aEvent.OldValue <<= msDescription;
-            aEvent.NewValue <<= sDescription;
-
+            const OUString sOldDescription = msDescription;
             msDescription = sDescription;
 
-            CommitChange(aEvent);
+            CommitChange(AccessibleEventId::DESCRIPTION_CHANGED, 
uno::Any(sOldDescription),
+                         uno::Any(sDescription));
         }
     }
     return msDescription;
@@ -310,15 +306,10 @@ OUString SAL_CALL
 
         if (msName != sName)
         {
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::NAME_CHANGED;
-            aEvent.Source = uno::Reference< XAccessibleContext >(this);
-            aEvent.OldValue <<= msName;
-            aEvent.NewValue <<= sName;
-
+            const OUString sOldName = msName;
             msName = sName;
 
-            CommitChange(aEvent);
+            CommitChange(AccessibleEventId::NAME_CHANGED, uno::Any(sOldName), 
uno::Any(sName));
         }
     }
     return msName;
@@ -428,30 +419,32 @@ OUString ScAccessibleContextBase::createAccessibleName()
     return OUString();
 }
 
-void ScAccessibleContextBase::CommitChange(const AccessibleEventObject& rEvent)
+void ScAccessibleContextBase::CommitChange(const sal_Int16 nEventId, const 
css::uno::Any& rOldValue,
+                                           const css::uno::Any& rNewValue, 
sal_Int32 nIndexHint)
 {
-    if (mnClientId)
-        comphelper::AccessibleEventNotifier::addEvent( mnClientId, rEvent );
-}
+    if (!mnClientId)
+        return;
 
-void ScAccessibleContextBase::CommitFocusGained()
-{
     AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::STATE_CHANGED;
     aEvent.Source = uno::Reference<XAccessibleContext>(this);
-    aEvent.NewValue <<= AccessibleStateType::FOCUSED;
+    aEvent.EventId = nEventId;
+    aEvent.OldValue = rOldValue;
+    aEvent.NewValue = rNewValue;
+    aEvent.IndexHint = nIndexHint;
 
-    CommitChange(aEvent);
+    comphelper::AccessibleEventNotifier::addEvent(mnClientId, aEvent);
 }
 
-void ScAccessibleContextBase::CommitFocusLost()
+void ScAccessibleContextBase::CommitFocusGained()
 {
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::STATE_CHANGED;
-    aEvent.Source = uno::Reference<XAccessibleContext>(this);
-    aEvent.OldValue <<= AccessibleStateType::FOCUSED;
+    CommitChange(AccessibleEventId::STATE_CHANGED, uno::Any(),
+                 uno::Any(AccessibleStateType::FOCUSED));
+}
 
-    CommitChange(aEvent);
+void ScAccessibleContextBase::CommitFocusLost()
+{
+    CommitChange(AccessibleEventId::STATE_CHANGED, 
uno::Any(AccessibleStateType::FOCUSED),
+                 uno::Any());
 }
 
 void ScAccessibleContextBase::IsObjectValid() const
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx 
b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 55e031c18dc7..42ba75f6433a 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -429,13 +429,10 @@ bool ScChildrenShapes::ReplaceChild 
(::accessibility::AccessibleShape* pCurrentC
         if (it != maShapesMap.end() && it->second->pAccShape.is())
         {
             OSL_ENSURE(it->second->pAccShape == pCurrentChild, "wrong child 
found");
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.Source = uno::Reference< XAccessibleContext 
>(mpAccessibleDocument);
-            aEvent.OldValue <<= uno::Reference<XAccessible>(pCurrentChild);
-            aEvent.IndexHint = -1;
-
-            mpAccessibleDocument->CommitChange(aEvent); // child is gone - 
event
+            // child is gone - event
+            mpAccessibleDocument->CommitChange(AccessibleEventId::CHILD,
+                                               
uno::Any(uno::Reference<XAccessible>(pCurrentChild)),
+                                               uno::Any());
 
             pCurrentChild->dispose();
         }
@@ -447,13 +444,9 @@ bool ScChildrenShapes::ReplaceChild 
(::accessibility::AccessibleShape* pCurrentC
         if (it != maShapesMap.end())
         {
             it->second->pAccShape = pReplacement;
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.Source = uno::Reference< XAccessibleContext 
>(mpAccessibleDocument);
-            aEvent.NewValue <<= uno::Reference<XAccessible>(pReplacement);
-            aEvent.IndexHint = -1;
-
-            mpAccessibleDocument->CommitChange(aEvent); // child is new - event
+            // child is new - event
+            mpAccessibleDocument->CommitChange(AccessibleEventId::CHILD, 
uno::Any(),
+                                               
uno::Any(uno::Reference<XAccessible>(pReplacement)));
             bResult = true;
         }
     }
@@ -1070,36 +1063,27 @@ bool ScChildrenShapes::FindSelectedShapesChanges(const 
uno::Reference<drawing::X
     }
     if (vecSelectedShapeAdd.size() >= 10 )
     {
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN;
-        aEvent.Source = uno::Reference< XAccessible >(mpAccessibleDocument);
-        mpAccessibleDocument->CommitChange(aEvent);
+        
mpAccessibleDocument->CommitChange(AccessibleEventId::SELECTION_CHANGED_WITHIN, 
uno::Any(),
+                                           uno::Any());
     }
     else
     {
         for (const auto& rpShape : vecSelectedShapeAdd)
         {
-            AccessibleEventObject aEvent;
+            sal_Int16 nEventId;
             if (bHasSelect)
-            {
-                aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_ADD;
-            }
+                nEventId = AccessibleEventId::SELECTION_CHANGED_ADD;
             else
-            {
-                aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
-            }
-            aEvent.Source = uno::Reference< XAccessible 
>(mpAccessibleDocument);
-            aEvent.NewValue <<= uno::Reference< XAccessible >( 
rpShape->pAccShape );
-            mpAccessibleDocument->CommitChange(aEvent);
+                nEventId = AccessibleEventId::SELECTION_CHANGED;
+            mpAccessibleDocument->CommitChange(
+                nEventId, uno::Any(), 
uno::Any(uno::Reference<XAccessible>(rpShape->pAccShape)));
         }
     }
     for (const auto& rpShape : vecSelectedShapeRemove)
     {
-        AccessibleEventObject aEvent;
-        aEvent.EventId =  AccessibleEventId::SELECTION_CHANGED_REMOVE;
-        aEvent.Source = uno::Reference< XAccessible >(mpAccessibleDocument);
-        aEvent.NewValue <<= uno::Reference< XAccessible >( rpShape->pAccShape 
);
-        mpAccessibleDocument->CommitChange(aEvent);
+        mpAccessibleDocument->CommitChange(
+            AccessibleEventId::SELECTION_CHANGED_REMOVE, uno::Any(),
+            uno::Any(uno::Reference<XAccessible>(rpShape->pAccShape)));
     }
     for(ScAccessibleShapeData*& pShapeData : aShapesList)
     {
@@ -1217,13 +1201,9 @@ void ScChildrenShapes::AddShape(const 
uno::Reference<drawing::XShape>& xShape, b
     }
     if (mpAccessibleDocument && bCommitChange)
     {
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::CHILD;
-        aEvent.Source = uno::Reference< XAccessibleContext 
>(mpAccessibleDocument);
-        aEvent.NewValue <<= Get(pShape);
-        aEvent.IndexHint = -1;
-
-        mpAccessibleDocument->CommitChange(aEvent); // new child - event
+        // new child - event
+        mpAccessibleDocument->CommitChange(AccessibleEventId::CHILD, 
uno::Any(),
+                                           uno::Any(Get(pShape)));
     }
 }
 
@@ -1245,13 +1225,9 @@ void ScChildrenShapes::RemoveShape(const 
uno::Reference<drawing::XShape>& xShape
             maShapesMap.erase((*aItr)->xShape);
             maZOrderedShapes.erase(aItr);
 
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.Source = uno::Reference< XAccessibleContext 
>(mpAccessibleDocument);
-            aEvent.OldValue <<= xOldAccessible;
-            aEvent.IndexHint = -1;
-
-            mpAccessibleDocument->CommitChange(aEvent); // child is gone - 
event
+            // child is gone - event
+            mpAccessibleDocument->CommitChange(AccessibleEventId::CHILD, 
uno::Any(xOldAccessible),
+                                               uno::Any());
         }
         else
         {
@@ -1478,10 +1454,8 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint )
             // mpChildrenShapes variable.
             mpChildrenShapes.reset( new ScChildrenShapes( this, mpViewShell, 
meSplitPos ) );
 
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::INVALIDATE_ALL_CHILDREN;
-            aEvent.Source = uno::Reference< XAccessibleContext >(this);
-            CommitChange(aEvent); // all children changed
+            // all children changed
+            CommitChange(AccessibleEventId::INVALIDATE_ALL_CHILDREN, 
uno::Any(), uno::Any());
 
             if (mpAccessibleSpreadsheet.is())
                 mpAccessibleSpreadsheet->GotFocus();
@@ -1548,11 +1522,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint )
         {
             if (maVisArea.GetSize() != aOldVisArea.GetSize())
             {
-                AccessibleEventObject aEvent;
-                aEvent.EventId = AccessibleEventId::BOUNDRECT_CHANGED;
-                aEvent.Source = uno::Reference< XAccessibleContext >(this);
-
-                CommitChange(aEvent);
+                CommitChange(AccessibleEventId::BOUNDRECT_CHANGED, uno::Any(), 
uno::Any());
 
                 if (mpAccessibleSpreadsheet.is())
                     mpAccessibleSpreadsheet->BoundingBoxChanged();
@@ -1589,13 +1559,7 @@ void SAL_CALL ScAccessibleDocument::selectionChanged( 
const lang::EventObject& /
         bSelectionChanged = true;
 
     if (bSelectionChanged)
-    {
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
-        aEvent.Source = uno::Reference< XAccessibleContext >(this);
-
-        CommitChange(aEvent);
-    }
+        CommitChange(AccessibleEventId::SELECTION_CHANGED, uno::Any(), 
uno::Any());
 }
 
     //=====  XInterface  =====================================================
@@ -2132,12 +2096,8 @@ void ScAccessibleDocument::AddChild(const 
uno::Reference<XAccessible>& xAcc, boo
         mxTempAcc = xAcc;
         if( bFireEvent )
         {
-            AccessibleEventObject aEvent;
-            aEvent.Source = uno::Reference<XAccessibleContext>(this);
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.NewValue <<= mxTempAcc;
-            aEvent.IndexHint = getAccessibleChildCount() - 1;
-            CommitChange( aEvent );
+            CommitChange(AccessibleEventId::CHILD, uno::Any(), 
uno::Any(mxTempAcc),
+                         getAccessibleChildCount() - 1);
         }
     }
 }
@@ -2150,14 +2110,7 @@ void ScAccessibleDocument::RemoveChild(const 
uno::Reference<XAccessible>& xAcc,
 
     OSL_ENSURE(xAcc.get() == mxTempAcc.get(), "only the same object should be 
removed");
     if( bFireEvent )
-    {
-        AccessibleEventObject aEvent;
-        aEvent.Source = uno::Reference<XAccessibleContext>(this);
-        aEvent.EventId = AccessibleEventId::CHILD;
-        aEvent.OldValue <<= mxTempAcc;
-        aEvent.IndexHint = -1;
-        CommitChange( aEvent );
-    }
+        CommitChange(AccessibleEventId::CHILD, uno::Any(mxTempAcc), 
uno::Any());
     mxTempAcc = nullptr;
 }
 
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx 
b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
index fa2c3d975d86..7d3d76f4862c 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
@@ -437,13 +437,8 @@ struct ScChildGone
     {
         if (mpAccDoc)
         {
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.Source = uno::Reference< XAccessibleContext >(mpAccDoc);
-            aEvent.OldValue <<= xAccessible;
-            aEvent.IndexHint = -1;
-
-            mpAccDoc->CommitChange(aEvent); // gone child - event
+            // gone child - event
+            mpAccDoc->CommitChange(AccessibleEventId::CHILD, 
uno::Any(xAccessible), uno::Any());
         }
     }
 };
@@ -456,13 +451,8 @@ struct ScChildNew
     {
         if (mpAccDoc)
         {
-            AccessibleEventObject aEvent;
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.Source = uno::Reference< XAccessibleContext >(mpAccDoc);
-            aEvent.NewValue <<= xAccessible;
-            aEvent.IndexHint = -1;
-
-            mpAccDoc->CommitChange(aEvent); // new child - event
+            // new child - event
+            mpAccDoc->CommitChange(AccessibleEventId::CHILD, uno::Any(), 
uno::Any(xAccessible));
         }
     }
 };
@@ -721,46 +711,26 @@ void ScShapeChildren::FindChanged(ScShapeChildVec& rOld, 
ScShapeChildVec& rNew)
         else if (aNewItr->mxShape.get() < aOldItr->mxShape.get())
         {
             xAcc = GetAccShape(*aNewItr);
-            AccessibleEventObject aEvent;
-            aEvent.Source = uno::Reference<XAccessibleContext> (mpAccDoc);
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.NewValue <<= xAcc;
-            aEvent.IndexHint = -1;
-            mpAccDoc->CommitChange(aEvent);
+            mpAccDoc->CommitChange(AccessibleEventId::CHILD, uno::Any(), 
uno::Any(xAcc));
             ++aNewItr;
         }
         else
         {
             xAcc = GetAccShape(*aOldItr);
-            AccessibleEventObject aEvent;
-            aEvent.Source = uno::Reference<XAccessibleContext> (mpAccDoc);
-            aEvent.EventId = AccessibleEventId::CHILD;
-            aEvent.OldValue <<= xAcc;
-            aEvent.IndexHint = -1;
-            mpAccDoc->CommitChange(aEvent);
+            mpAccDoc->CommitChange(AccessibleEventId::CHILD, uno::Any(xAcc), 
uno::Any());
             ++aOldItr;
         }
     }
     while (aOldItr != aOldEnd)
     {
         xAcc = GetAccShape(*aOldItr);
-        AccessibleEventObject aEvent;
-        aEvent.Source = uno::Reference<XAccessibleContext> (mpAccDoc);
-        aEvent.EventId = AccessibleEventId::CHILD;
-        aEvent.OldValue <<= xAcc;
-        aEvent.IndexHint = -1;
-        mpAccDoc->CommitChange(aEvent);
+        mpAccDoc->CommitChange(AccessibleEventId::CHILD, uno::Any(xAcc), 
uno::Any());
         ++aOldItr;
     }
     while (aNewItr != aNewEnd)
     {
         xAcc = GetAccShape(*aNewItr);
-        AccessibleEventObject aEvent;
-        aEvent.Source = uno::Reference<XAccessibleContext> (mpAccDoc);
-        aEvent.EventId = AccessibleEventId::CHILD;
-        aEvent.NewValue <<= xAcc;
-        aEvent.IndexHint = -1;
-        mpAccDoc->CommitChange(aEvent);
+        mpAccDoc->CommitChange(AccessibleEventId::CHILD, uno::Any(), 
uno::Any(xAcc));
         ++aNewItr;
     }
 }
@@ -1215,14 +1185,8 @@ void ScAccessibleDocumentPagePreview::Notify( 
SfxBroadcaster& rBC, const SfxHint
         // only notify if child exist, otherwise it is not necessary
         if (mpTable.is()) // if there is no table there is nothing to notify, 
because no one recognizes the change
         {
-            {
-                AccessibleEventObject aEvent;
-                aEvent.EventId = AccessibleEventId::CHILD;
-                aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                aEvent.OldValue <<= uno::Reference<XAccessible>(mpTable);
-                aEvent.IndexHint = -1;
-                CommitChange(aEvent);
-            }
+            CommitChange(AccessibleEventId::CHILD, 
uno::Any(uno::Reference<XAccessible>(mpTable)),
+                         uno::Any());
 
             mpTable->dispose();
             mpTable.clear();
@@ -1248,14 +1212,8 @@ void ScAccessibleDocumentPagePreview::Notify( 
SfxBroadcaster& rBC, const SfxHint
             mpTable = new ScAccessiblePreviewTable( this, mpViewShell, nIndex 
);
             mpTable->Init();
 
-            {
-                AccessibleEventObject aEvent;
-                aEvent.EventId = AccessibleEventId::CHILD;
-                aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                aEvent.NewValue <<= uno::Reference<XAccessible>(mpTable);
-                aEvent.IndexHint = -1;
-                CommitChange(aEvent);
-            }
+            CommitChange(AccessibleEventId::CHILD, uno::Any(),
+                         uno::Any(uno::Reference<XAccessible>(mpTable)));
         }
     }
     else if (rHint.GetId() == SfxHintId::ScAccVisAreaChanged)
@@ -1269,10 +1227,7 @@ void ScAccessibleDocumentPagePreview::Notify( 
SfxBroadcaster& rBC, const SfxHint
 
         GetShapeChildren()->VisAreaChanged();
 
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
-        aEvent.Source = uno::Reference< XAccessibleContext >(this);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::VISIBLE_DATA_CHANGED, uno::Any(), 
uno::Any());
     }
     ScAccessibleDocumentBase::Notify(rBC, rHint);
 }
diff --git a/sc/source/ui/Accessibility/AccessiblePageHeader.cxx 
b/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
index dab5f2f89b3c..c7a3d4cf8297 100644
--- a/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
@@ -107,34 +107,23 @@ void ScAccessiblePageHeader::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint )
             {
                 if (aOldAreas[i].is() && aOldAreas[i]->GetEditTextObject())
                 {
-                    AccessibleEventObject aEvent;
-                    aEvent.EventId = AccessibleEventId::CHILD;
-                    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                    aEvent.OldValue <<= 
uno::Reference<XAccessible>(aOldAreas[i]);
-                    aEvent.IndexHint = -1;
-
-                    CommitChange(aEvent); // child gone - event
+                    // child gone - event
+                    CommitChange(AccessibleEventId::CHILD,
+                                 
uno::Any(uno::Reference<XAccessible>(aOldAreas[i])), uno::Any());
                     aOldAreas[i]->dispose();
                 }
                 if (maAreas[i].is() && maAreas[i]->GetEditTextObject())
                 {
-                    AccessibleEventObject aEvent;
-                    aEvent.EventId = AccessibleEventId::CHILD;
-                    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                    aEvent.NewValue <<= 
uno::Reference<XAccessible>(maAreas[i]);
-                    aEvent.IndexHint = -1;
-
-                    CommitChange(aEvent); // new child - event
+                    // new child - event
+                    CommitChange(AccessibleEventId::CHILD, uno::Any(),
+                                 
uno::Any(uno::Reference<XAccessible>(maAreas[i])));
                 }
             }
         }
     }
     else if (rHint.GetId() == SfxHintId::ScAccVisAreaChanged)
     {
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
-        aEvent.Source = uno::Reference< XAccessibleContext >(this);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::VISIBLE_DATA_CHANGED, uno::Any(), 
uno::Any());
     }
 
     ScAccessibleContextBase::Notify(rBC, rHint);
diff --git a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx 
b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
index 4881e2a8ce60..845cdbc5d884 100644
--- a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
@@ -89,10 +89,7 @@ void ScAccessiblePageHeaderArea::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHi
         if (mpTextHelper)
             mpTextHelper->UpdateChildren();
 
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
-        aEvent.Source = uno::Reference< XAccessibleContext >(this);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::VISIBLE_DATA_CHANGED, uno::Any(), 
uno::Any());
     }
     ScAccessibleContextBase::Notify(rBC, rHint);
 }
diff --git a/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx 
b/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
index 5dfc06ca063b..791c3a7d7836 100644
--- a/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
@@ -91,10 +91,7 @@ void ScAccessiblePreviewTable::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
     }
     else if (nId == SfxHintId::ScAccVisAreaChanged)
     {
-        AccessibleEventObject aEvent;
-        aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
-        aEvent.Source = uno::Reference< XAccessibleContext >(this);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::VISIBLE_DATA_CHANGED, uno::Any(), 
uno::Any());
     }
 
     ScAccessibleContextBase::Notify(rBC, rHint);
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx 
b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 239341d36f7c..a98ac677605e 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -329,35 +329,26 @@ void 
ScAccessibleSpreadsheet::CompleteSelectionChanged(bool bNewState)
     }
     mpMarkedRanges.reset();
 
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::STATE_CHANGED;
+    uno::Any aOldValue;
+    uno::Any aNewValue;
     if (bNewState)
-        aEvent.NewValue <<= AccessibleStateType::SELECTED;
+        aNewValue <<= AccessibleStateType::SELECTED;
     else
-        aEvent.OldValue <<= AccessibleStateType::SELECTED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-
-    CommitChange(aEvent);
+        aOldValue <<= AccessibleStateType::SELECTED;
+    CommitChange(AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue);
 }
 
 void ScAccessibleSpreadsheet::LostFocus()
 {
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-    aEvent.OldValue <<= uno::Reference<XAccessible>(mpAccCell);
-
-    CommitChange(aEvent);
-
+    CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+                 uno::Any(uno::Reference<XAccessible>(mpAccCell)), uno::Any());
     CommitFocusLost();
 }
 
 void ScAccessibleSpreadsheet::GotFocus()
 {
     CommitFocusGained();
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
+
     uno::Reference< XAccessible > xNew;
     if (IsFormulaMode())
     {
@@ -384,27 +375,18 @@ void ScAccessibleSpreadsheet::GotFocus()
             return ;
         }
     }
-    aEvent.NewValue <<= xNew;
 
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, uno::Any(), 
uno::Any(xNew));
 }
 
 void ScAccessibleSpreadsheet::BoundingBoxChanged()
 {
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::BOUNDRECT_CHANGED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::BOUNDRECT_CHANGED, uno::Any(), uno::Any());
 }
 
 void ScAccessibleSpreadsheet::VisAreaChanged()
 {
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::VISIBLE_DATA_CHANGED, uno::Any(), 
uno::Any());
 }
 
     //=====  SfxListener  =====================================================
@@ -477,13 +459,8 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
                 }
 
                 CommitTableModelChange(nFirstRow, nFirstCol, nLastRow, 
nLastCol, nId);
-
-                AccessibleEventObject aEvent;
-                aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-                aEvent.Source = uno::Reference< XAccessibleContext >(this);
-                aEvent.NewValue <<= uno::Reference<XAccessible>(mpAccCell);
-
-                CommitChange(aEvent);
+                CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, 
uno::Any(),
+                             uno::Any(uno::Reference<XAccessible>(mpAccCell)));
             }
         }
     }
@@ -511,18 +488,16 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
                 }
                 m_bFormulaLastMode = m_bFormulaMode;
 
-                AccessibleEventObject aEvent;
-                aEvent.Source = uno::Reference< XAccessible >(this);
                 ScAddress aNewCell = rViewData.GetCurPos();
                 if(aNewCell.Tab() != maActiveCell.Tab())
                 {
-                    aEvent.EventId = AccessibleEventId::PAGE_CHANGED;
                     auto pAccParent = getAccessibleParent();
                     ScAccessibleDocument *pAccDoc =
                         static_cast<ScAccessibleDocument*>(pAccParent.get());
                     if(pAccDoc)
                     {
-                        pAccDoc->CommitChange(aEvent);
+                        pAccDoc->CommitChange(AccessibleEventId::PAGE_CHANGED, 
uno::Any(),
+                                              uno::Any());
                     }
                 }
                 bool bNewPosCell = (aNewCell != maActiveCell) || 
mpViewShell->GetForceFocusOnCurCell(); // #i123629#
@@ -540,16 +515,14 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
 //              sal_Bool bNewCellSelected = 
isAccessibleSelected(aNewCell.Row(), aNewCell.Col());
                 sal_uInt16 nTab = rViewData.GetTabNo();
                 const ScRange& aMarkRange = refScMarkData.GetMarkArea();
-                aEvent.OldValue.clear();
                 ScDocument* pDoc= GetDocument(mpViewShell);
                 //Mark All
                 if ( !bNewPosCellFocus &&
                     (bNewMarked || bIsMark || bIsMultMark ) &&
                     aMarkRange == ScRange( 0,0,nTab, 
pDoc->MaxCol(),pDoc->MaxRow(),nTab ) )
                 {
-                    aEvent.EventId = 
AccessibleEventId::SELECTION_CHANGED_WITHIN;
-                    aEvent.NewValue.clear();
-                    CommitChange(aEvent);
+                    CommitChange(AccessibleEventId::SELECTION_CHANGED_WITHIN, 
uno::Any(),
+                                 uno::Any());
                     return ;
                 }
                 if (!mpMarkedRanges)
@@ -578,11 +551,8 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
                             !aMarkRange.Contains(m_aLastWithInMarkRange) &&
                             aMarkRange.Intersects(m_aLastWithInMarkRange);
                         if( !bSelSmaller )
-                        {
-                            aEvent.EventId = 
AccessibleEventId::SELECTION_CHANGED_WITHIN;
-                            aEvent.NewValue.clear();
-                            CommitChange(aEvent);
-                        }
+                            
CommitChange(AccessibleEventId::SELECTION_CHANGED_WITHIN, uno::Any(),
+                                         uno::Any());
                         m_aLastWithInMarkRange = aMarkRange;
                     }
                     return ;
@@ -608,14 +578,11 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
                         xChild = mpAccCell;
 
                         maActiveCell = aNewCell;
-                        aEvent.EventId = 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS;
-                        aEvent.NewValue <<= uno::Reference< XAccessible 
>(xChild);
-                        aEvent.OldValue <<= uno::Reference< XAccessible >();
-                        CommitChange(aEvent);
+                        
CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS,
+                                     uno::Any(), 
uno::Any(uno::Reference<XAccessible>(xChild)));
                     }
-                    aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
-                    aEvent.NewValue <<= uno::Reference< XAccessible >(xChild);
-                    CommitChange(aEvent);
+                    CommitChange(AccessibleEventId::SELECTION_CHANGED, 
uno::Any(),
+                                 
uno::Any(uno::Reference<XAccessible>(xChild)));
                     OSL_ASSERT(m_mapSelectionSend.count(aNewCell) == 0 );
                     m_mapSelectionSend.emplace(aNewCell,xChild);
 
@@ -637,9 +604,8 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
                         std::vector<ScMyAddress> vecNew;
                         if(CalcScRangeListDifferenceMax(mpMarkedRanges.get(), 
&m_LastMarkedRanges,10,vecNew))
                         {
-                            aEvent.EventId = 
AccessibleEventId::SELECTION_CHANGED_WITHIN;
-                            aEvent.NewValue.clear();
-                            CommitChange(aEvent);
+                            
CommitChange(AccessibleEventId::SELECTION_CHANGED_WITHIN, uno::Any(),
+                                         uno::Any());
                         }
                         else
                         {
@@ -648,13 +614,12 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
                                 rtl::Reference< ScAccessibleCell > xChild = 
GetAccessibleCellAt(rAddr.Row(),rAddr.Col());
                                 if (!(bNewPosCellFocus && rAddr == aNewCell) )
                                 {
-                                    aEvent.EventId = 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS;
-                                    aEvent.NewValue <<= uno::Reference< 
XAccessible >(xChild);
-                                    CommitChange(aEvent);
+                                    CommitChange(
+                                        
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS,
+                                        uno::Any(), 
uno::Any(uno::Reference<XAccessible>(xChild)));
                                 }
-                                aEvent.EventId = 
AccessibleEventId::SELECTION_CHANGED_ADD;
-                                aEvent.NewValue <<= uno::Reference< 
XAccessible >(xChild);
-                                CommitChange(aEvent);
+                                
CommitChange(AccessibleEventId::SELECTION_CHANGED_ADD, uno::Any(),
+                                             
uno::Any(uno::Reference<XAccessible>(xChild)));
                                 m_mapSelectionSend.emplace(rAddr,xChild);
                             }
                         }
@@ -685,18 +650,17 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
                         OUString 
valStr(pScDoc->GetString(aNewCell.Col(),aNewCell.Row(),aNewCell.Tab()));
                         if(mpAccCell.is() && m_strCurCellValue != valStr)
                         {
-                            AccessibleEventObject aTextChangedEvent;
-                            
(void)comphelper::OCommonAccessibleText::implInitTextChangedEvent(m_strCurCellValue,
 valStr,
-                                                                               
               aTextChangedEvent.OldValue,
-                                                                               
               aTextChangedEvent.NewValue);
-                            aTextChangedEvent.EventId = 
AccessibleEventId::TEXT_CHANGED;
-                            mpAccCell->CommitChange(aTextChangedEvent);
+                            uno::Any aOldValue;
+                            uno::Any aNewValue;
+                            
(void)comphelper::OCommonAccessibleText::implInitTextChangedEvent(
+                                m_strCurCellValue, valStr, aOldValue, 
aNewValue);
+                            
mpAccCell->CommitChange(AccessibleEventId::TEXT_CHANGED, aOldValue,
+                                                    aNewValue);
 
                             if (pScDoc->HasValueData(maActiveCell))
                             {
-                                AccessibleEventObject aEvent;
-                                aEvent.EventId = 
AccessibleEventId::VALUE_CHANGED;
-                                mpAccCell->CommitChange(aEvent);
+                                
mpAccCell->CommitChange(AccessibleEventId::VALUE_CHANGED,
+                                                        uno::Any(), 
uno::Any());
                             }
 
                             m_strCurCellValue = valStr;
@@ -705,15 +669,12 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& 
rBC, const SfxHint& rHint
                         pScDoc->GetName( maActiveCell.Tab(), tabName );
                         if( m_strOldTabName != tabName )
                         {
-                            AccessibleEventObject aEvent;
-                            aEvent.EventId = AccessibleEventId::NAME_CHANGED;
                             OUString sOldName(ScResId(STR_ACC_TABLE_NAME));
                             sOldName = sOldName.replaceFirst("%1", 
m_strOldTabName);
-                            aEvent.OldValue <<= sOldName;
                             OUString sNewName(ScResId(STR_ACC_TABLE_NAME));
                             sNewName = sNewName.replaceFirst("%1", tabName);
-                            aEvent.NewValue <<= sNewName;
-                            CommitChange( aEvent );
+                            CommitChange(AccessibleEventId::NAME_CHANGED, 
uno::Any(sOldName),
+                                         uno::Any(sNewName));
                             m_strOldTabName = tabName;
                         }
                     }
@@ -745,8 +706,6 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
 
 void ScAccessibleSpreadsheet::RemoveSelection(const ScMarkData &refScMarkData)
 {
-    AccessibleEventObject aEvent;
-    aEvent.Source = uno::Reference< XAccessible >(this);
     MAP_ADDR_XACC::iterator miRemove = m_mapSelectionSend.begin();
     while (miRemove != m_mapSelectionSend.end())
     {
@@ -756,9 +715,8 @@ void ScAccessibleSpreadsheet::RemoveSelection(const 
ScMarkData &refScMarkData)
             ++miRemove;
             continue;
         }
-        aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_REMOVE;
-        aEvent.NewValue <<= uno::Reference< XAccessible >(miRemove->second);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::SELECTION_CHANGED_REMOVE, uno::Any(),
+                     uno::Any(uno::Reference<XAccessible>(miRemove->second)));
         miRemove = m_mapSelectionSend.erase(miRemove);
     }
 }
@@ -786,37 +744,31 @@ void ScAccessibleSpreadsheet::CommitFocusCell(const 
ScAddress &aNewCell)
         OUString 
valStr(pScDoc->GetString(aOldActiveCell.Col(),aOldActiveCell.Row(),aOldActiveCell.Tab()));
         if(m_strCurCellValue != valStr)
         {
-            AccessibleEventObject aTextChangedEvent;
-            
(void)comphelper::OCommonAccessibleText::implInitTextChangedEvent(m_strCurCellValue,
 valStr,
-                                                                              
aTextChangedEvent.OldValue,
-                                                                              
aTextChangedEvent.NewValue);
-            aTextChangedEvent.EventId = AccessibleEventId::TEXT_CHANGED;
-            mpAccCell->CommitChange(aTextChangedEvent);
+            uno::Any aOldValue;
+            uno::Any aNewValue;
+            (void)comphelper::OCommonAccessibleText::implInitTextChangedEvent(
+                m_strCurCellValue, valStr, aOldValue, aNewValue);
+            mpAccCell->CommitChange(AccessibleEventId::TEXT_CHANGED, 
aOldValue, aNewValue);
 
             if (pScDoc->HasValueData(maActiveCell))
             {
-                AccessibleEventObject aEvent;
-                aEvent.EventId = AccessibleEventId::VALUE_CHANGED;
-                mpAccCell->CommitChange(aEvent);
+                mpAccCell->CommitChange(AccessibleEventId::VALUE_CHANGED, 
uno::Any(), uno::Any());
             }
 
             m_strCurCellValue = valStr;
         }
     }
 
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-    aEvent.Source = uno::Reference< XAccessible >(this);
-    aEvent.OldValue <<= uno::Reference<XAccessible>(mpAccCell);
+    uno::Reference<XAccessible> xOldCell = mpAccCell;
     mpAccCell.clear();
     mpAccCell = GetAccessibleCellAt(aNewCell.Row(), aNewCell.Col());
-    aEvent.NewValue <<= uno::Reference<XAccessible>(mpAccCell);
     maActiveCell = aNewCell;
     if (pScDoc)
     {
         m_strCurCellValue = 
pScDoc->GetString(maActiveCell.Col(),maActiveCell.Row(),maActiveCell.Tab());
     }
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, 
uno::Any(xOldCell),
+                 uno::Any(uno::Reference<XAccessible>(mpAccCell)));
 }
 
 //=====  XAccessibleTable  ================================================
@@ -1531,11 +1483,8 @@ void ScAccessibleSpreadsheet::FireFirstCellFocus()
         return ;
     }
     mbIsFocusSend = true;
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-    aEvent.Source = uno::Reference< XAccessible >(this);
-    aEvent.NewValue <<= getAccessibleCellAt(maActiveCell.Row(), 
maActiveCell.Col());
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, uno::Any(),
+                 uno::Any(getAccessibleCellAt(maActiveCell.Row(), 
maActiveCell.Col())));
 }
 
 void ScAccessibleSpreadsheet::NotifyRefMode()
@@ -1561,19 +1510,16 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
         m_nMinY = std::min(nRefStartY,nRefEndY);
         m_nMaxY = std::max(nRefStartY,nRefEndY);
         RemoveFormulaSelection();
-        AccessibleEventObject aEvent;
-        aEvent.Source = uno::Reference< XAccessible >(this);
-        aEvent.EventId = AccessibleEventId::ACTIVE_DESCENDANT_CHANGED;
-        aEvent.OldValue <<= uno::Reference<XAccessible>(m_pAccFormulaCell);
+        uno::Reference<XAccessible> xOldFormulaCell = m_pAccFormulaCell;
         m_pAccFormulaCell = GetAccessibleCellAt(aFormulaAddr.Row(), 
aFormulaAddr.Col());
         rtl::Reference< ScAccessibleCell > xNew = m_pAccFormulaCell;
-        aEvent.NewValue <<= uno::Reference< XAccessible >(xNew);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, 
uno::Any(xOldFormulaCell),
+                     uno::Any(uno::Reference<XAccessible>(xNew)));
+
         if (nRefStartX == nRefEndX && nRefStartY == nRefEndY)
         {//Selection Single
-            aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
-            aEvent.NewValue <<= uno::Reference< XAccessible >(xNew);
-            CommitChange(aEvent);
+            CommitChange(AccessibleEventId::SELECTION_CHANGED, 
uno::Any(xOldFormulaCell),
+                         uno::Any(uno::Reference<XAccessible>(xNew)));
             m_mapFormulaSelectionSend.emplace(aFormulaAddr,xNew);
             m_vecFormulaLastMyAddr.clear();
             m_vecFormulaLastMyAddr.emplace_back(aFormulaAddr);
@@ -1599,9 +1545,7 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
             int nNewSize = vecNew.size();
             if ( nNewSize > 10 )
             {
-                aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_WITHIN;
-                aEvent.NewValue.clear();
-                CommitChange(aEvent);
+                CommitChange(AccessibleEventId::SELECTION_CHANGED_WITHIN, 
uno::Any(), uno::Any());
             }
             else
             {
@@ -1615,13 +1559,12 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
                     else
                     {
                         xChild = GetAccessibleCellAt(rAddr.Row(),rAddr.Col());
-                        aEvent.EventId = 
AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS;
-                        aEvent.NewValue <<= uno::Reference< XAccessible 
>(xChild);
-                        CommitChange(aEvent);
+                        
CommitChange(AccessibleEventId::ACTIVE_DESCENDANT_CHANGED_NOFOCUS,
+                                     uno::Any(xOldFormulaCell),
+                                     
uno::Any(uno::Reference<XAccessible>(xChild)));
                     }
-                    aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_ADD;
-                    aEvent.NewValue <<= uno::Reference< XAccessible >(xChild);
-                    CommitChange(aEvent);
+                    CommitChange(AccessibleEventId::SELECTION_CHANGED_ADD, 
uno::Any(),
+                                 
uno::Any(uno::Reference<XAccessible>(xChild)));
                     m_mapFormulaSelectionSend.emplace(rAddr,xChild);
                 }
             }
@@ -1633,8 +1576,6 @@ void ScAccessibleSpreadsheet::NotifyRefMode()
 
 void ScAccessibleSpreadsheet::RemoveFormulaSelection(bool bRemoveAll )
 {
-    AccessibleEventObject aEvent;
-    aEvent.Source = uno::Reference< XAccessible >(this);
     auto miRemove = m_mapFormulaSelectionSend.begin();
     while (miRemove != m_mapFormulaSelectionSend.end())
     {
@@ -1643,9 +1584,8 @@ void ScAccessibleSpreadsheet::RemoveFormulaSelection(bool 
bRemoveAll )
             ++miRemove;
             continue;
         }
-        aEvent.EventId = AccessibleEventId::SELECTION_CHANGED_REMOVE;
-        aEvent.NewValue <<= uno::Reference< XAccessible >(miRemove->second);
-        CommitChange(aEvent);
+        CommitChange(AccessibleEventId::SELECTION_CHANGED_REMOVE, uno::Any(),
+                     uno::Any(uno::Reference<XAccessible>(miRemove->second)));
         miRemove = m_mapFormulaSelectionSend.erase(miRemove);
     }
 }
diff --git a/sc/source/ui/Accessibility/AccessibleTableBase.cxx 
b/sc/source/ui/Accessibility/AccessibleTableBase.cxx
index a40bb7e22245..316b92567182 100644
--- a/sc/source/ui/Accessibility/AccessibleTableBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleTableBase.cxx
@@ -435,12 +435,7 @@ void 
ScAccessibleTableBase::CommitTableModelChange(sal_Int32 nStartRow, sal_Int3
     aModelChange.LastColumn = nEndCol;
     aModelChange.Type = nId;
 
-    AccessibleEventObject aEvent;
-    aEvent.EventId = AccessibleEventId::TABLE_MODEL_CHANGED;
-    aEvent.Source = uno::Reference< XAccessibleContext >(this);
-    aEvent.NewValue <<= aModelChange;
-
-    CommitChange(aEvent);
+    CommitChange(AccessibleEventId::TABLE_MODEL_CHANGED, uno::Any(), 
uno::Any(aModelChange));
 }
 
 sal_Bool SAL_CALL ScAccessibleTableBase::selectRow( sal_Int32 )
diff --git a/sc/source/ui/inc/AccessibleContextBase.hxx 
b/sc/source/ui/inc/AccessibleContextBase.hxx
index 24bbc903d835..ed6bee6b3277 100644
--- a/sc/source/ui/inc/AccessibleContextBase.hxx
+++ b/sc/source/ui/inc/AccessibleContextBase.hxx
@@ -193,9 +193,9 @@ protected:
     virtual tools::Rectangle GetBoundingBox() const = 0;
 
 public:
-    /// Calls all Listener to tell they the change.
-    void
-        CommitChange(const css::accessibility::AccessibleEventObject& rEvent);
+    /// Calls all listeners to notify them about the change.
+    void CommitChange(const sal_Int16 nEventId, const css::uno::Any& rOldValue,
+                      const css::uno::Any& rNewValue, sal_Int32 nIndexHint = 
-1);
 
     /// Use this method to set initial Name without notification
     void SetName(const OUString& rName) { msName = rName; }

Reply via email to