Skip to content

[DynamicPage]: Header does not expand when focus moves to title area via Shift+Tab #13778

Description

@AlexYanSap1

Describe the bug

When using a DynamicPage with a header area that gets snapped (collapsed) on scroll, pressing Shift+Tab to navigate focus backward from the content area to the title area does NOT expand the header. The header remains snapped/hidden, making the header content invisible to keyboard users.

The DynamicPage component already handles forward focus correctly — onContentFocusIn sets scroll-padding-top and calls scrollIntoView to ensure focused content elements are visible. However, there is no equivalent handler for when focus moves backward into the title/header area while the header is snapped.

This is an accessibility (a11y) issue: screen reader and keyboard-only users cannot see the header content (participants, status, dates, etc.) when navigating backward through the page.

Isolated Example

https://stackblitz.com/edit/github-2ee1n6vw?file=src%2FApp.tsx

Reproduction steps

  1. Open the example above in a browser
  2. Scroll down until the DynamicPage header snaps (collapses) — only the title area remains visible
  3. Use Tab to move focus to any element in the content area (e.g., a list item or the "Save" button at the bottom)
  4. Press Shift+Tab repeatedly to move focus backward toward the title area
  5. Observe that when focus reaches the title area (breadcrumbs, action buttons, or the expand/collapse button), the header remains snapped — the header content (Participants, Status, Last Updated) is NOT visible

Expected Behaviour

When focus moves to the title area via Shift+Tab (reverse tabbing), the DynamicPage header should automatically expand, making the header content visible — symmetrical to how onContentFocusIn ensures content elements are visible when receiving focus via forward Tab.

The component already has the infrastructure for this:

onContentFocusIn handles forward focus by setting scroll-padding and calling scrollIntoView
headerSnapped setter can programmatically toggle the header state
_toggleHeader() handles the expand/collapse logic
A focusin handler on the title-header wrapper (.ui5-dynamic-page-title-header-wrapper) that un-snaps the header would fix this issue.

Screenshots or Videos

No response

UI5 Web Components for React Version

2.21.3 & latest

UI5 Web Components Version

2.21.1 & latest

Browser

Chrome

Operating System

No response

Additional Context

This behavior was previously reported against the classic OpenUI5 sap.f.DynamicPage in UI5/openui5#4229, but the Web Components DynamicPage is a completely separate implementation.

The Web Components version already handles the analogous forward-focus case (onContentFocusIn at line 325 of DynamicPage.js), so the fix would be adding a symmetric handler for focus entering the title area while the header is snapped.

WCAG 2.1 Success Criterion 2.4.3 (Focus Order) requires that focus order preserves meaning and operability — a snapped header hiding content from keyboard users during reverse navigation violates this principle.

Relevant log output

Organization

SAP SuccessFactors

Declaration

  • I’m not disclosing any internal or sensitive information.

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions