Remove the lane header's "+" new-card control
The lane header no longer draws a new-card button. Every other creation path is untouched: File > New Card (Cmd-N), Return on a selected lane, and double-click on lane empty space. - LaneView: drop the button and its overlay slot, leaving the collapse chevron as the header's one piece of trailing chrome. - NewCardTarget: drop the button's click-names-target carve-out over the Cmd-N target rule (Return on a selected lane is now the only direct-target path left). - AccessibilityPhrases: drop the button's spoken label. - BoardMetrics: drop its width reserve; laneHeaderTrailingReserve now reduces to the collapse chevron's own reserve. - DESIGN/03, 04, 10, 11: update the lane title-bar inventory, the Cmd-N override clause and search-clearing mechanism list, the accessibility tree-shape sentence, and the pointer-grammar row that described the button. - Tests: drop the two pinned accessibility-label tests and the newCardButtonReserve assertions; retarget the truncation-headroom test at the now-solo laneHeaderTrailingReserve; fix stale doc-quote comments and the manual accessibility-verification checklist. Full KanbanTests suite: 2807 tests, 482 suites, all passing. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -6,7 +6,7 @@ import Testing
|
||||
/// the tree as sentences:
|
||||
///
|
||||
/// > A lane container is labeled "⟨title⟩, lane, N cards" — the count reads the search filter like
|
||||
/// > the visible badge. The lane header's new-card button is a labeled child ("New card in ⟨lane⟩").
|
||||
/// > the visible badge. The lane header's collapse chevron is a labeled child ("Collapse ⟨lane⟩").
|
||||
/// > A card is one flattened element: label = title (or the untitled placeholder), value carries the
|
||||
/// > attachment count when present, selected state via trait … cut cards expose their dimmed pending
|
||||
/// > state in the value ("cut, pending paste").
|
||||
@@ -69,18 +69,6 @@ struct AccessibilityPhrasesTests {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - The new-card button
|
||||
|
||||
@Test("The header button names its lane")
|
||||
func newCardLabel() {
|
||||
#expect(AccessibilityPhrases.newCardLabel(lane: "Doing") == "New card in Doing")
|
||||
}
|
||||
|
||||
@Test("The header button of an untitled lane names the placeholder")
|
||||
func newCardLabelUntitled() {
|
||||
#expect(AccessibilityPhrases.newCardLabel(lane: nil) == "New card in Untitled")
|
||||
}
|
||||
|
||||
// MARK: - Card elements
|
||||
|
||||
@Test("A card's label is its title")
|
||||
|
||||
Reference in New Issue
Block a user