Research + Accessibility + Security

OneButton PIN

A single-tile authentication method for blind and low-vision users: hold one large button, feel a rhythm of haptics, count, release — the digit is entered. No tiny keypad targets. No screen reader leaking digits. Less anxiety in public.

🏆 Best Paper Award (MobileHCI 2022)
📱 Single-tile PIN entry
🫳 Haptics: ST / VI / VD
🕶️ Reduced shoulder-surfing risk
OneButton PIN concept visual
🏆
Award
Best Paper
What you’re about to see
A playable demo (works best on Android), followed by the deeper story: problem, design, parameters, study setups, results, and what I’d do next in production.

😖 The problem

Traditional PIN keypads are hard to target and easy to mis-tap for blind/low-vision users. In public, spoken feedback can increase risk (aural leakage). Finger movement patterns can be shoulder-surfed.

Small targets → errors Screen reader risk Shoulder-surfing

✨ The core idea

Replace the 0–9 keypad with one large button. Press + hold triggers equally spaced vibrations. Count vibrations, release to enter the digit. Count wraps at 9 (so 15 → digit 5). Quick tap can enter 0.

Large target Count haptics No digit read-out
Playable demo (single tile + haptics)
Checking vibration support…
— — — —
HOLD FOR PIN Hold to feel pulses → release to enter digit
Live count while holding0
Digit that will be entered on release0
ModeOBP

🎚️ Tune the haptics (like the paper)

Time between vibrations. Paper explored 1–400ms; demo defaults slower so you can “feel” it clearly.
Length of each vibration pulse.
Delay before first vibration after press. Paper explored 0–200ms.
Randomize ST (0–200ms) From the paper: ST = Random(0–200ms)
Randomly increase VI (0–200ms) From the paper: VI = VI_setting + Random(0–200ms)
Reality check: Web vibration won’t work on many iPhones. That’s not your concept failing — it’s browser support. Recruiters on iOS will still see the pulse + hear a subtle tick so the interaction remains understandable.

🧠 Design deep dive

The interface keeps the familiar PIN layout framing, but replaces the 0–9 keypad with a single large button titled “Hold for PIN.” This reduces target acquisition problems and lowers the chance of mis-identifying keys. The “Clear,” “Delete,” and “Enter” actions remain, with short labels to avoid repetitive screen reader output.

OneButtonPIN interface figure
Interface: single “Hold for PIN” tile replacing keypad buttons.
Haptic parameters figure
Haptics: Start Time (ST), Vibration Interval (VI), Vibration Duration (VD).
  • Digit entry: hold → count vibrations → release → digit entered.
  • Wrap behavior: after 9, the counter restarts at 0 (e.g., 15 → digit 5).
  • Zero entry: quick tap before vibrations start (or count to 10).
  • Security posture: no spoken digits from screen reader + minimal finger movement reduces observation cues.
  • Anti-timing hardening: explore randomizing ST and increasing VI by 0–200ms to make timing inference harder.

🧪 Study 1 (week-long diary) — usability + accessibility

A week-long remote diary study evaluated usability/accessibility with 9 blind/low-vision participants. Participants completed 18 tasks across conditions (including baseline traditional entry and OneButtonPIN variants).

SUS score
70.3 → 80.8
Higher perceived usability for OneButtonPIN.
NASA-TLX
30.0 → 16.6
Lower workload / stress reported.
Time per task
26.5s → 17.9s
Faster completion vs traditional interface.
Error rate
2.56% → 0%
Lower errors: large target + count-based entry.

Participants also reported reduced anxiety in public contexts and better control over entry, because the interaction does not require precise navigation across small buttons.

🕵️ Study 2 — security against shoulder surfing

A second study evaluated resistance to observation attacks with 10 sighted participants acting as attackers. Attackers observed PIN entry and attempted to infer the PIN. Compared to traditional PIN entry, OneButtonPIN reduced successful shoulder-surfing. Randomizing Start Time reduced success further.

  • Why it helps: minimal finger travel removes the “path” cue attackers rely on.
  • Random ST: makes timing alignment harder even if an attacker tries to estimate rhythm.
  • User-controlled misdirection: users can intentionally over-count (e.g., 12 → digit 2) to mislead observers.

✅ Results (what a hiring manager should remember)

  • Accessibility win: fewer errors and lower workload by removing small-target interaction.
  • Usability win: better SUS and faster completion time.
  • Security win: reduced shoulder-surfing success vs traditional entry; random ST strengthens it further.
  • Practicality: users can tune VI/VD to personal preference, similar to device accessibility settings.

🔭 Next steps (if this shipped for real)

  • Native implementation: build iOS/Android native versions to guarantee haptic fidelity and accessibility support.
  • Adaptive haptics: calibrate VI/VD based on device hardware + user sensitivity (guided setup flow).
  • Threat modeling: test against high-speed video timing analysis and develop mitigation (stronger randomization/decoys).
  • Real-world contexts: evaluate in noisy public places, one-handed use, and with gloves/cold weather.
  • Longer-term memorability: measure learning curves and error recovery for daily phone unlock behavior.
Previous
Previous

Activation Fee waiver