arrow_back Index

Field Notes

Dispatches from the field. Expedition logs, disputed findings, correspondence received, cautionary accounts, and observations too brief for the main catalogue. The Heuristic Order assumes no liability for emotional distress caused by the Pest Register.

explore I. Expedition Reports

First-person accounts submitted to the Order by practitioners in the field. Names withheld where requested. Dungeons identified only by type.

Day 1 of 47 · Enterprise Admin Panel · Q3 Engagement — Cas Whitmore, Senior Dungeon Engineer

The client briefed us this morning. The admin panel manages inventory for fourteen warehouses across three time zones. They need a table. They showed us a spreadsheet. The spreadsheet had sixty-one columns.

I asked which columns users look at every day. They said probably eight or nine. I asked which columns could be hidden by default. There was a long silence. The product manager said he would need to check with the business.

I have begun drawing the table. I have drawn four columns. I feel I am building a dam in front of a river I have not yet seen.

we ended up with 43 columns, 12 frozen. the river won.
Day 3 · Consumer Mobile App · Notification Audit — anonymous submission, role: UX Researcher

Conducted a session study today. Six participants. Task: complete a purchase. The app fires a Toast notification when the item is added to the cart. Duration: approximately 1.8 seconds.

Two of six participants read the Toast. Three looked up from the task and found it already gone. One participant asked if anything had happened. I told her something had happened. She said she couldn't tell.

The team lead says 1.8 seconds is "enough time." I have calculated that the WCAG minimum for this message length is approximately 5 seconds. I have sent the calculation. I have been told it is a known issue.

Day 12 · SaaS Dashboard · Accessibility Remediation Sprint — Fen Arlow, Accessibility Consultant

Found forty-seven instances of the Div-Button today. I know because I counted. The developer I'm working with is excellent and immediately understood the problem. He is fixing them as fast as the backlog permits, which is not very fast, because there are forty-seven of them.

The codebase has a custom component called <ClickableBox>. It wraps everything that needs to be clicked. It is a div. It has an onClick handler. It does not have a role. It does not have a tabindex. It was written in 2019 and nobody questioned it because it looked fine. It looked fine for five years.

We are renaming it <Button> and making it a real button. This is the most important thing I will do this sprint. I am not being sarcastic.

Day 2 of 2 · Marketing Site · Modal Compliance Review — anonymous, role: not specified

The modal appears 2.3 seconds after page load. It asks for an email address. The user has been on the site for 2.3 seconds. They have not read anything. They have not decided if they like the site. They have not been given any reason to share their email address.

I asked the stakeholder what conversion rate this modal achieves. He said 0.4%. I asked what the dismissal rate was. He said he didn't track dismissal rate, only conversion. I explained that 99.6% of users who see this modal choose to close it rather than engage.

He said 0.4% is actually pretty good for this kind of thing.

I am writing this from the car park. I needed some air.

gavel II. Disputed Findings

Cases where the Heuristic Order's official position is contested by practitioners in the field. The Order presents both arguments, then rules. The losing faction's position is preserved for the historical record.

expand_all On the exclusive Accordion: should it permit multiple open panels, or enforce a single open at a time?
The Efficiency Faction

Exclusive mode — one panel open at a time — preserves screen real estate and prevents users from becoming lost in a wall of expanded content. Users who need to compare two panels can read one, close it, and open the other. The cognitive load of managing multiple expanded panels simultaneously is higher than the cost of re-opening a closed one.

The Autonomy Faction

Exclusive mode takes a decision away from the user that the user is perfectly capable of making themselves. If a user has opened two panels, they have opened two panels deliberately. Closing one without their instruction is paternalistic. Users comparing content between sections must now perform two additional interactions for every comparison. The desire to compare is a signal about the content's structure, not the user's incompetence.

Order Ruling: The Autonomy Faction prevails for general use. Permit multiple open panels unless screen space is genuinely constrained (narrow viewports, dense sidebars) or content is mutually exclusive by nature. When exclusive mode is used, document the decision and the reason. "It looks neater" is not a reason.
info On the Tooltip: should it carry essential information, or only supplementary?
The Pragmatist Faction

The rule that Tooltips should never carry essential information is too absolute. A Tooltip on an icon button is frequently the only place its label can live without redesigning the layout. On desktop — where the overwhelming majority of icon-button interactions occur — hover is a reliable input method. Refusing to put necessary information in a Tooltip because touch users cannot access it results in unlabelled buttons, which is worse.

The Standards Faction

An unlabelled button is a problem. A button whose label is only accessible via hover is also a problem — a different problem affecting a different audience, but a problem of equal severity. The solution is not to choose which users are inconvenienced; it is to find a layout that accommodates both. If no such layout exists, the interface has a design problem that the Tooltip is being asked to solve.

Order Ruling: Partial concession to the Pragmatist Faction. Icon-only buttons may use a Tooltip as their primary label, provided the Tooltip also appears on keyboard focus (not hover only) and the icon is sufficiently universally understood to serve as a reasonable backup. The Tooltip must not be the only accessibility consideration — merely the primary one in a constrained context.
error On the Error Toast: is it ever appropriate?
The Absolutist Faction

The Toast is a transient, non-blocking notification mechanism. An error is a persistent, blocking condition requiring user action. These two things are categorically incompatible. An error Toast disappears before the user can act on it. An error Toast that does not disappear is no longer a Toast. There is no version of an Error Toast that is correct. The Error Banner, the inline form error, the persistent alert — these are the correct tools.

The Contextual Faction

There exist system-level errors — network timeouts, background sync failures, third-party service interruptions — that are genuinely non-blocking and require only acknowledgement, not immediate action. "Your draft could not be auto-saved" is an error. It does not require immediate action. A persistent banner for every background process failure creates alert fatigue. A dismissible Toast with a retry action is appropriate here.

Order Ruling: The Contextual Faction prevails in narrow circumstances: system-level, background, non-blocking errors where the user is informed but not required to act, and where a retry or other recovery mechanism is included in the Toast. For any error that requires user input to resolve — form validation, permission failures, data loss — the Toast is not sufficient. The distinction is between "this happened" and "you need to do something."

visibility III. Observations from the Field

Findings too brief for a full entry. Submitted without attribution. The Order verifies nothing; the Order recognises everything.

The Button with no label, only an icon, and no aria-label. Observed in seventeen consecutive audits across eleven different organisations. The Order has stopped being surprised. It has not stopped being concerned.
A Dropdown containing 847 options. Sorted by internal database ID. No search. The first visible option was for a country that no longer exists. The user needed to select their shipping region. They gave up and called customer support instead.
A Modal that could not be closed with the Escape key. Could not be closed by clicking the overlay. Could be closed only by finding a small X button in the top-right corner, positioned behind the browser's native scrollbar on Windows. Four users in the session recording were observed refreshing the page instead. This was their only option.
A Skeleton Loader that persisted for eleven seconds before resolving into an error state that said "Something went wrong." The Skeleton Loader had prepared the user for content. The error state did not tell them what went wrong, where, or what to do. The user sat with the ambiguity for a moment, then left.
A Data Table with a "select all" checkbox. Selecting it selected all 4,200 rows. There was no "select all on this page" option. The delete button was not disabled during the selection. One user found this out by accident. It was, in the words of the incident report, "instructive."
An Accordion on a FAQ page in which the answer to "How do I cancel my account?" was in the seventh panel. The first six panels concerned billing. The user looking for the cancellation instructions had already decided to cancel. The Accordion did not change this. It only delayed it.
A Toast notification that appeared in the bottom-right corner of the dungeon, directly beneath the chat support widget, which was also in the bottom-right corner. They overlapped perfectly. Neither team was aware the other's creature existed. Both had been shipped in the same quarter.
A page with nine Primary Buttons. All filled, all dark, all the same size. A tenth button, styled as a ghost link, was the actual primary action. It had been designed this way on purpose. The rationale was "we didn't want it to look too aggressive."

mail IV. Letters to the Order

Correspondence received since the first print run. The Order replies where it has something useful to say. This is not always.

From: A Practitioner in the Northern Provinces I take issue with the Tooltip's Threat Rating of one star. In my experience, the Tooltip is among the most consistently misused creatures in the interface ecosystem — deployed in place of visible labels, used to hide required instructions, absent from keyboard navigation in the majority of implementations I encounter. On what basis does it receive only one star while the Button, which is trivially implemented correctly, receives the same?
The Order Responds: The Threat Rating measures the danger of the creature when incorrectly implemented, scaled against the likelihood and severity of that misimplementation causing harm. A misimplemented Button is a div that cannot be pressed with a keyboard. A misimplemented Tooltip is supplementary information that some users cannot access. The former affects every interaction; the latter affects only the information it carries — which, if the volume's guidance has been followed, is never essential. We acknowledge this reasoning is more optimistic than the field data supports. The second edition will revisit the rating. We do not disagree with your observation.
From: A Design Systems Engineer, Organisation Withheld Your entry on the Data Table recommends surveying available libraries before building custom. We surveyed them. We chose one. Three months later, the library was deprecated. We are now maintaining a fork. This is not better than building custom. It may be worse. I would appreciate the Order's thoughts on this.
The Order Responds: You have encountered one of the Codebase's oldest dilemmas and there is no resolution the Order can offer that will feel satisfying. Building custom: you own all the decisions and all the bugs. Depending on a library: you borrow the decisions and share the risk. Forking a deprecated library: you have inherited both. The Order's position remains that library evaluation is worthwhile — a deprecated-but-functional library with years of battle-testing is still often preferable to a bespoke implementation begun from scratch today. But we acknowledge this is a principle, not a guarantee, and you are living the counterexample.
From: A Recently Promoted Design Lead I have just inherited a design system with, by my count, fourteen button variants. I can identify the purpose of perhaps eight. The other six appear to have been created for single use cases in specific flows and never removed. What does the Order recommend?
The Order Responds: The Order recommends auditing usage before removing anything. The six variants of unknown purpose may be load-bearing in contexts not immediately visible. Map each variant to its actual uses in the dungeon before deprecating. If a variant is used only once, in a flow that could accommodate a standard variant without visible change, it may be retired. If it is used nowhere, it may be retired immediately and without ceremony. If it is used in twelve places for reasons nobody can remember, schedule a conversation with whoever built those twelve places before touching anything. The conversation will be informative.

pest_control V. The Pest Register

A running record of documented misuses and abuses. Entries are added as they are encountered. The register has never shortened. It has only grown. Dungeons are not identified; patterns are.

001
The newsletter Modal that opens within three seconds of a first visit, before the user has read a single word of the page it covers. Documented in: Consumer blog, e-commerce sites, news publications, software marketing pages. The specimen appears across all dungeon types without discrimination. Conversion rate: consistently below 1%. Abandonment contribution: consistently above.
002
The cookie consent Modal that requires three separate clicks to decline all non-essential cookies, but only one click to accept all. Observed across: the majority of European-facing dungeons. Legal minimum compliance achieved. Ethical minimum compliance not achieved. The Heuristic Order notes that "legal" and "correct" are not synonyms and has been noting this for some time.
003
The five-star rating Tooltip that appears on hover and obscures the stars the user is attempting to click. The Tooltip, which is meant to label the star the user is hovering over, renders precisely over the star the user is hovering over. This is a positioning failure so specific it has been documented independently by multiple practitioners. The solution is to position the Tooltip above the stars. This has not universally occurred.
004
The "Are you sure?" Confirmation Modal that appears for reversible actions, and does not appear for irreversible ones. The Modal asks "Are you sure you want to log out?" Logging out is recoverable. The same dungeon deletes records permanently without confirmation. The Modal is being used for comfort, not protection. The Order finds this arrangement philosophically incoherent.
005
The Dropdown used to select a date, containing 365 options for day, 12 for month, and 100 for year, each in a separate creature. Three Dropdowns totalling 477 options to select a single date. A date picker — a creature documented for Volume II — would require two interactions. The Dropdown date selector requires a minimum of six. It has been encountered in medical forms, banking portals, and government services. It is, in these contexts, not a minor inconvenience.
006
The inline Toast that appears at the top of the page when a form below the fold fails validation — above the viewport, invisible to the user, announcing an error they cannot see and cannot locate. The user submits the form. Nothing appears to happen. They submit again. Still nothing. They scroll up, having not planned to. The Toast has already dismissed. The form still has errors. The user does not know this. They submit a third time. This scenario has been observed in usability testing on four separate occasions.
007
The Accordion used to hide the page's primary content behind a "Read More" header, ensuring users must perform an extra interaction to access the page's reason for existing. The Accordion was designed for progressive disclosure of supplementary content. It has been pressed into service here to solve a layout problem that could have been solved with a scroll. The content being hidden is the content. The Order considers this the creature's most philosophically troubling misuse.