Phase 7 of CalendarView WinUI 3 parity upgrade
Parent tracking issue : (will be linked from epic)
Scope
Re-enable the extensive #if false disabled automation peer code. This is the bulk of disabled code in the codebase and represents the largest gap in accessibility support.
Work items
CalendarViewAutomationPeer : Re-enable ISelectionProvider (CanSelectMultipleImpl, IsSelectionRequiredImpl, GetSelectionImpl), IGridProvider (ColumnCountImpl, RowCountImpl, GetItemImpl), ITableProvider (GetColumnHeadersImpl, GetRowHeadersImpl, RowOrColumnMajorImpl), IValueProvider (ValueImpl, IsReadOnlyImpl, SetValueImpl)
CalendarViewBaseItemAutomationPeer : Re-enable ColumnSpanImpl, RowSpanImpl, ScrollIntoViewImpl
CalendarViewDayItemAutomationPeer : Re-enable ITableItemProvider (column/row header items), ISelectionItemProvider (AddToSelection, RemoveFromSelection, Select, IsSelected), IGridItemProvider (Column, Row)
CalendarViewItemAutomationPeer : Re-enable similar providers for year/decade items
CalendarScrollViewerAutomationPeer : Complete implementation
CalendarViewHeaderAutomationPeer : Add m_currentHeaderPeer/m_previousHeaderPeer tracking
Files to modify
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewAutomationPeer.cs
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewBaseItemAutomationPeer.cs
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewDayItemAutomationPeer.cs
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewItemAutomationPeer.cs
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarScrollViewerAutomationPeer.cs
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewHeaderAutomationPeer.h.cs
WinUI source reference
All *AutomationPeer_Partial.cpp/.h files in dxaml/xcp/dxaml/lib/
Dependencies
Phase 4 (event lifecycle)
Phase 6 (virtualization for container lookup)
Risk & Testing
Risk : LOW - automation peers don't affect visual runtime behavior. Code is already written, just disabled.
Size : Medium-Large PR (~400-600 lines of un-disabled code + interface wiring)
Testing : CalendarViewAutomationPeerIntegrationTests.cs (746 lines). Screen reader verification.
Phase 7 of CalendarView WinUI 3 parity upgrade
Parent tracking issue: (will be linked from epic)
Scope
Re-enable the extensive
#if falsedisabled automation peer code. This is the bulk of disabled code in the codebase and represents the largest gap in accessibility support.Work items
ISelectionProvider(CanSelectMultipleImpl,IsSelectionRequiredImpl,GetSelectionImpl),IGridProvider(ColumnCountImpl,RowCountImpl,GetItemImpl),ITableProvider(GetColumnHeadersImpl,GetRowHeadersImpl,RowOrColumnMajorImpl),IValueProvider(ValueImpl,IsReadOnlyImpl,SetValueImpl)ColumnSpanImpl,RowSpanImpl,ScrollIntoViewImplITableItemProvider(column/row header items),ISelectionItemProvider(AddToSelection, RemoveFromSelection, Select, IsSelected),IGridItemProvider(Column, Row)m_currentHeaderPeer/m_previousHeaderPeertrackingFiles to modify
src/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewAutomationPeer.cssrc/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewBaseItemAutomationPeer.cssrc/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewDayItemAutomationPeer.cssrc/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewItemAutomationPeer.cssrc/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarScrollViewerAutomationPeer.cssrc/Uno.UI/UI/Xaml/Controls/CalendarView/CalendarViewHeaderAutomationPeer.h.csWinUI source reference
*AutomationPeer_Partial.cpp/.hfiles indxaml/xcp/dxaml/lib/Dependencies
Risk & Testing
CalendarViewAutomationPeerIntegrationTests.cs(746 lines). Screen reader verification.