Accessibility

Accessible names, native behavior, state cues, and motion guidance.

FreakUI uses native platform behavior wherever the system already owns the correct interaction. Client code remains responsible for meaningful labels and product-specific context.

Accessible names

Icon-only controls need an accessibility label. Charts and progress indicators need labels that describe the represented relationship.

FButton(
    style: .ghost,
    leftIcon: "trash",
    accessibilityLabel: "Delete transaction"
) {
    requestDeletion()
}

FProgress(
    value: completed,
    total: total,
    accessibilityLabel: "Workout completion"
)

State and behavior

  • Do not use color, motion, or haptics as the only state cue.
  • Keep system alerts, confirmation dialogs, menus, focus behavior, and navigation mechanics native.
  • Provide honest recovery actions for empty, unavailable, and failed states.
  • Keep long-running application operations cancellable.