Check

A box that is ticked or not, with its name, for a form or a list where several can be on. A click asks for the opposite.

Part of a Settings window titled Backup with the heading What to include and five checks: Everything below partly ticked, and under it Documents and Pictures ticked, with Pictures under the pointer, then Music and Downloads not ticked, and a forward Slab, Back up now, below.
A backup form with a partly ticked parent and four checks under it.

Use a check for one of several things that can each be on or off, in a form or a list of choices, or for a parent that stands for a group. The ticks are read together, usually when the person presses a button. Two parts look close to it and do other jobs:

Anatomy

Three checks at twice their size, each named Name: one ticked, one partly ticked and one not ticked. Numbered callouts name the ticked box's accent fill, its dark tick, the label, the partly ticked box's dash, and the outline of the box that is not ticked.
Three checks at twice their size: ticked, partly ticked and not ticked.
  1. BoxTicked or partly ticked: a fill in the accent. Not ticked: no fill, a 1.5-pixel outline in the main ink at 30 %.
  2. TickThe check symbol, 16 pixels, dark (the ink on the accent).
  3. LabelThe secondary ink; the main ink while the pointer is over the check.
  4. DashA partly ticked box shows a dash, 10 by 2, in place of the tick. This is mixed: a parent over children of which only some are ticked.
  5. OutlineThe box that is not ticked is read by its outline, so it shows in grey as well.

The whole row, box and label, is the target. The label is also what a screen reader says.

States

The check in six columns: not ticked, not ticked under the pointer, ticked, partly ticked, ticked with the keyboard focus ring, and ticked but unavailable.
The check in each state.
  1. Not tickedThe outline and the label in the secondary ink.
  2. Pointer over itThe outline steps up to 45 % and the label goes to the main ink; the pointer is a hand. See States.
  3. TickedThe accent box and the dark tick.
  4. Partly tickedThe accent box and the dash.
  5. Keyboard focusThe ring around the box, not the label.
  6. UnavailableBox, tick and label in the faint ink, no response.

The box changes colour over 80 ms (hover), and the tick appears at once. With reduced motion on, it changes at once.

A click or Space asks for the opposite and the app sets checked. A partly ticked box asks for ticked.

Sizes

A ticked check at 3 times its size: 96 high with the box 60 across, and a gap of 36 between the box and the label.
The check at 3 times its size.
PartValue
Box20, corner #6 (radius.art)
Row height32 (height.railRow)
Space between box and label12 (space.m)
Tick16 pixels
Dash10 by 2
Outline1.5 pixels, the main ink at 30 %; 45 % under the pointer

Put the children of a parent 24 pixels in from it, and keep 4 pixels between rows.

Keys and pointer

Do thisTo
TabMove the focus to the check
SpaceAsk for the opposite (a partly ticked box asks for ticked)
Click on the box or the labelThe same

Accessibility

Writing

Name what is included, as a noun or a short phrase: "Pictures", "Show hidden files". The tick says yes and the empty box says no, so write the name for the case where it is ticked. Do not write it as a negative ("Do not hide hidden files"): a tick then means no.

Do and don't

A panel with three checks, Documents and Pictures ticked and Music not, and a forward Slab, Back up.
DoUse checks for several things that are read together when the form is sent.
A panel with three checks named Night light, Do not disturb and Sound for new messages, two of them ticked, and no button.
Don'tUse checks for settings that act at once. A box that is ticked and does something reads as a form waiting to be sent. Use a switch.
A parent check, Everything below, partly ticked, over Documents ticked and Music not ticked.
DoShow a parent as partly ticked when only some of its children are.
A parent check, Everything below, ticked, over Documents ticked and Music not ticked.
Don'tShow a parent as ticked while a child is not. It says everything is on.
A check named Show hidden files, ticked.
DoName what is included.
A check named Do not hide hidden files, ticked.
Don'tWrite the name as a negative. Ticked then means the opposite of what it says.

Code

import Tacit.Kit

Column {
    Check {
        label: "Documents"
        checked: backup.documents
        onToggled: value => backup.documents = value
    }
    Check {
        label: "Everything below"
        mixed: backup.some
        checked: backup.all
        onToggled: value => backup.setAll(value)
    }
}
PropertyWhat it does
checkedTicked or not. The app sets it when it hears toggled
mixedSome of a group are on: the dash. A click asks for ticked
labelThe name, shown beside the box and said by a screen reader
enabledFalse: the faint ink, no response and out of the Tab order
toggled(checked)Sent with the value asked for by a click or Space

Experimental, in Tacit.Kit 0.1.