← back to Ticket System
Use accessible buttons for ticket tiles
dc0248eafc8506b27d586c1ac8ac0c11a603a98d · 2026-09-02 14:38:33 -0700 · Steve Abrams
Files touched
M desktop-bar/TicketBar.swift
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 →