You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/08/23 09:16:41 UTC
(causeway) 06/22: archives menu dismissal change
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch htmx
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit bb00f535240597e48055047ea93d5dea6e93d405
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Aug 20 20:55:17 2026 +0100
archives menu dismissal change
---
.../2026-08-20-fix-menu-dismissal}/.openspec.yaml | 0
.../2026-08-20-fix-menu-dismissal}/design.md | 0
.../2026-08-20-fix-menu-dismissal}/proposal.md | 0
.../specs/generic-htmx-web-component-viewer/spec.md | 0
.../2026-08-20-fix-menu-dismissal}/tasks.md | 0
.../specs/generic-htmx-web-component-viewer/spec.md | 21 +++++++++++++++++++++
6 files changed, 21 insertions(+)
diff --git a/openspec/changes/fix-menu-dismissal/.openspec.yaml b/openspec/changes/archive/2026-08-20-fix-menu-dismissal/.openspec.yaml
similarity index 100%
rename from openspec/changes/fix-menu-dismissal/.openspec.yaml
rename to openspec/changes/archive/2026-08-20-fix-menu-dismissal/.openspec.yaml
diff --git a/openspec/changes/fix-menu-dismissal/design.md b/openspec/changes/archive/2026-08-20-fix-menu-dismissal/design.md
similarity index 100%
rename from openspec/changes/fix-menu-dismissal/design.md
rename to openspec/changes/archive/2026-08-20-fix-menu-dismissal/design.md
diff --git a/openspec/changes/fix-menu-dismissal/proposal.md b/openspec/changes/archive/2026-08-20-fix-menu-dismissal/proposal.md
similarity index 100%
rename from openspec/changes/fix-menu-dismissal/proposal.md
rename to openspec/changes/archive/2026-08-20-fix-menu-dismissal/proposal.md
diff --git a/openspec/changes/fix-menu-dismissal/specs/generic-htmx-web-component-viewer/spec.md b/openspec/changes/archive/2026-08-20-fix-menu-dismissal/specs/generic-htmx-web-component-viewer/spec.md
similarity index 100%
rename from openspec/changes/fix-menu-dismissal/specs/generic-htmx-web-component-viewer/spec.md
rename to openspec/changes/archive/2026-08-20-fix-menu-dismissal/specs/generic-htmx-web-component-viewer/spec.md
diff --git a/openspec/changes/fix-menu-dismissal/tasks.md b/openspec/changes/archive/2026-08-20-fix-menu-dismissal/tasks.md
similarity index 100%
rename from openspec/changes/fix-menu-dismissal/tasks.md
rename to openspec/changes/archive/2026-08-20-fix-menu-dismissal/tasks.md
diff --git a/openspec/specs/generic-htmx-web-component-viewer/spec.md b/openspec/specs/generic-htmx-web-component-viewer/spec.md
index 723bdc288f5..adff5e16598 100644
--- a/openspec/specs/generic-htmx-web-component-viewer/spec.md
+++ b/openspec/specs/generic-htmx-web-component-viewer/spec.md
@@ -92,6 +92,27 @@ The viewer SHALL keep application branding, menu bars, announcements, loading st
- **THEN** `<causeway-menubars>` remains coordinated in the stable shell
- **AND** menu state is invalidated only by its documented application-entry context
+### Requirement: Transient application menu dismissal
+The viewer's semantic application menus SHALL close an expanded menu panel after an enabled action is selected and SHALL allow the user to dismiss an expanded menu with Escape.
+Disclosure accessibility state, panel visibility, action dispatch, and focus behavior MUST remain synchronized during dismissal.
+
+#### Scenario: Enabled menu action is selected
+- **WHEN** the user activates an enabled action in an expanded application menu by pointer or keyboard
+- **THEN** the containing menu disclosure changes to collapsed and its controlled panel becomes hidden
+- **AND** the selected semantic action request is dispatched exactly once
+- **AND** the resulting prompt, result, or route transition continues according to its existing focus policy
+
+#### Scenario: Expanded menu is dismissed with Escape
+- **WHEN** focus is within an expanded application menu and the user presses Escape
+- **THEN** the active menu disclosure changes to collapsed and its controlled panel becomes hidden
+- **AND** focus returns to that menu's disclosure control
+- **AND** no service action is requested
+
+#### Scenario: Menu dismissal is scoped
+- **WHEN** an expanded menu is dismissed after selection or with Escape
+- **THEN** only the transient menu panel is closed
+- **AND** the surrounding menu bar and stable application shell remain operable
+
### Requirement: HTMX-independent component data plane
The HTMX viewer SHALL NOT construct GraphQL domain operations, translate GraphQL response data, parse Causeway grid or menu resources, or directly access Causeway metamodel and persistence internals.