E1.16.4visited is a link statedesignresearch

Visited state belongs to links; buttons have no visited concept

Aliases: visited link · :visited · unvisited

What it is

Visited marks “I have been to this address.” It follows a resource id, so it belongs only to links. A button fires an action in the current document; there is no “been there” to store. A Pay key must not turn purple to mean “paid”—that is order state, not browsing history. Painting a button as visited borrows a history channel that actions do not have. Omitting visited on links drops the map of “which have I seen.”

Why it happens

Browsing history is a set of addresses. The browser restyles links from that set so people can skip already-opened items in a list, search results, a TOC. Buttons do not enter that history: the same Delete, once clicked, should not be remembered as “this delete was visited.” If a product styles a button as a link and shows visited, people think it is a place they can go again. If navigation is a button, history cannot color it, and read cues on a directory vanish. Modern browsers privacy-limit :visited styling (often color only), but it still applies only to real links. Simulating “clicked” on buttons with local storage fights the same purple semantics, painting read documents and executed actions one color.

Studying it

Give a directory: real links with visited, buttons faking links that recolor after click, button jumps that never recolor. Ask people to open three unseen items.

Independent variables: real link or not, visited shown, whether the privacy-limited color gap is discriminable. Dependent variables: reopening already-read items, missing unread ones, treating a recolored button as a document that can be revisited.

Clearing history and clicking once or twice in the lab underplays visited. Use a long directory that is already partly visited.

Where it stops holding

Read/unread is an application state (mail, notifications) that can sit on the row; it need not and should not be visited color. Paid, registered are business states: a label or disabled, not purple. Private browsing has no stable history; visited is unreliable and cannot be the only read cue. A button’s loading or success is a receipt for this action, living until this action ends; do not keep it as cross-session “visited.”

Applying it

  • Use visited styling only on navigation with a real href. Do not borrow purple/grey on action buttons to mean “clicked.”
  • Directories, search results, and TOCs should be real links so history can color them.
  • Mark business completion with an explicit label (Paid), not a visited color.
  • Verify by opening several items and returning to the list. Real links should show they were visited. Recolored buttons in a row, or navigation with no difference at all, means visited was applied to the wrong object.

Related

  • Within the group: E1.16.1 Links activate with Enter; buttons respond to Enter and Space · E1.16.2 Screen readers speak link and button roles, not only the label · E1.16.3 Open-in-new-tab in the context menu is meaningful only for links
  • Adjacent: E1.08 Links versus buttons · E1.02 Button states · G3 Search and find
  • Search terms: visited link · :visited · browsing history

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/E1.16.4