Web Library: alphabet rail always shows #/A-Z/& #69
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Operator: previous rail only emitted buttons for letters that had items, so jumping to a section meant scrolling to it first — defeating the rail's point as a navigation tool. Rail now reads as a stable A-Z reference regardless of which letters are present in the current view.
bucketFor()classifies the first character into#(digits),A–Z(letters), or&(everything else). Anchor ids switch from per-letter to per-bucket:alpha-#,alpha-A, …,alpha-&.railEntrieshardcodes the full# → A-Z → &order.cursor:defaultso they read as "no entries here" rather than broken jumps. aria-label changes too:Jump to A(enabled) vsC — no entries(disabled).#/&get verbose labels ("numbers" / "symbols") because the bare glyph isn't readable.Tests rewritten — 4 cases: full-rail-with-disabled-buckets, DOM order, populated-bucket ids, and a separate fixture confirming digit-starting items bucket under
#.CI green on
ad1a000a(run 170).Operator: prior rail only emitted buttons for letters with items, so jumping to a letter required scrolling to that section first — not useful as a navigation tool. Rail now always renders the full set so the page reads as a stable A-Z reference regardless of which letters are present. - New bucketFor() classifies the first character into '#' (digits), 'A'-'Z' (letters), or '&' (everything else). Anchor ids switch from per-letter to per-bucket: alpha-#, alpha-A, ..., alpha-&. - ALPHABET + railEntries hardcode the full # / A-Z / & order. - Buttons for empty buckets render disabled with a low-opacity tint + cursor:default so they read as 'no entries here' rather than broken jumps. aria-label changes too — 'Jump to A' (enabled) vs 'C — no entries' (disabled) so screen readers announce state. - # / & get verbose labels ('numbers'/'symbols') because the bare glyph isn't readable. Tests rewritten — 4 cases: full-rail-with-disabled-buckets, DOM-order, populated-bucket ids, and a separate fixture confirming digit-starting items bucket under '#'.