Design AI Citations for Failure, Not Just the Happy Path A developer proposes designing AI citation components with explicit states—loading, available, changed, missing—rather than relying solely on a blue link. The pattern includes text-based status indicators, accessible labels, and support for live updates, keyboard navigation, and high contrast. The approach is illustrated with a code example and a list of test scenarios, though it is not a description of any existing product's UI. An AI citation is often rendered as a tiny blue 3 . That works only when the source exists, loads quickly, matches the quoted revision, and is usable by keyboard and screen-reader users. A citation component needs states, not just a link. type CitationState = | { kind: "loading"; label: string } | { kind: "available"; label: string; href: string; excerpt: string } | { kind: "changed"; label: string; href: string; retrievedAt: string } | { kind: "missing"; label: string; reason: "deleted" | "forbidden" | "offline" }; Render each state in text: