[object Object]

← back to Ticket System

Use accessible buttons for ticket tiles

dc0248eafc8506b27d586c1ac8ac0c11a603a98d · 2026-09-02 14:38:33 -0700 · Steve Abrams

Files touched

Diff

commit dc0248eafc8506b27d586c1ac8ac0c11a603a98d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 14:38:33 2026 -0700

    Use accessible buttons for ticket tiles
---
 desktop-bar/TicketBar.swift | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/desktop-bar/TicketBar.swift b/desktop-bar/TicketBar.swift
index 4626a9c9..5c7cceed 100644
--- a/desktop-bar/TicketBar.swift
+++ b/desktop-bar/TicketBar.swift
@@ -11,7 +11,7 @@ private struct TicketState {
   var updated = ""
 }
 
-private final class BarTile: NSView {
+private final class BarTile: NSButton {
   let key: String
   let label: NSTextField
   var menuProvider: (() -> NSMenu)?
@@ -23,6 +23,11 @@ private final class BarTile: NSView {
     self.key = key
     self.label = label
     super.init(frame: .zero)
+    title = ""
+    isBordered = false
+    target = self
+    action = #selector(showDropdown)
+    setAccessibilityLabel("\(key.capitalized) ticket tile")
     wantsLayer = true
     layer?.cornerRadius = 6
     layer?.backgroundColor = NSColor(calibratedWhite: 0.11, alpha: 0.9).cgColor
@@ -39,13 +44,12 @@ private final class BarTile: NSView {
   }
 
   required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") }
-  override func hitTest(_ point: NSPoint) -> NSView? { self }
-  override func mouseDown(with event: NSEvent) { dragged = false }
+  override func mouseDown(with event: NSEvent) { dragged = false; super.mouseDown(with: event) }
   override func mouseDragged(with event: NSEvent) {
     dragged = true
     dragHandler?(key, event.locationInWindow.x)
   }
-  override func mouseUp(with event: NSEvent) {
+  @objc private func showDropdown() {
     guard !dragged, let menu = menuProvider?() else { return }
     NSApp.activate(ignoringOtherApps: true)
     menu.popUp(positioning: nil, at: NSPoint(x: 4, y: bounds.height - 2), in: self)

← f595f9d6 Activate ticket tile dropdown menus  ·  back to Ticket System  ·  Track ticket tile mouse drags ae36a776 →