Search and navigation

Reading time 5 min

Reader search is browser-side over generated search-index.json, not a hosted search engine, live source query or permission-filtered account service. Sidebar/breadcrumbs/heading links provide a second way to find context.

Input Action
Header search Opens palette; typing is inside it
Ctrl+K / Cmd+K Open; select existing query when open
/ outside form editing Open palette
At least 2 characters Starts result search
Arrow down/up Move selected result, wraps
Enter Open selected page/fragment
Escape or overlay backdrop Close palette
Tab in palette Kept in input, not general traversal

The header field is read-only as an entry control, not the active typing box. OS/browser shortcuts can intercept key combinations, especially embedded contexts. Test actual browser and pointer/touch entry too.

Closing restores prior non-header focus when available; header search is blurred to avoid reopening loop. Palette results have option/selection semantics, but these facts do not certify every assistive-technology scenario. Verify keyboard/focus with intended readers.

Query matching

Query kind Matching
Ordinary words Every term must match somewhere
Exact word Strongest word match
Prefix Weaker than exact
Typo Terms 5+ can allow edit distance
Quoted phrase Normalized title/body substring
One-character ordinary term Rejected by core

Text normalizes lowercase/NFKD and removes combining marks. Word matching handles Unicode words beyond ASCII, which does not mean route slugs support all languages. For typo terms length 5-8, up to one edit; 9+, up to two. Transposed adjacent characters can match. It is not semantic embedding search or a promise all misspellings match.

Ranking weights title stronger than section path, then text; exact complete title and page type gain bonuses. Each ordinary term can match different fields of the same entry. Quoted phrases search normalized title/text combined, not path-only phrase filtering. Search does not expose date/role/filetype/server query filters.

Pages and Sections are grouped separately, default caps 6 page and 8 section hits. The result count is displayed hits, not total matching index count. Try fewer distinctive words when no results or too much generic overlap.

Indexed content

Entry Source
Page Title, breadcrumb path, description and intro
Section H2-H4 title, fragment and following prose
Code/diagram Preformatted text stripped
Script/style/SVG Stripped from prose
Hidden branch Still indexed when built
Unsaved draft Not in generated index

Page text ends at first indexed heading. Heading text extends to next indexed heading, not the whole document. Description can be displayed as fallback when a page entry has no intro; core word preparation does not separately search description field. Put meaningful purpose in actual prose too.

H1/H5/H6 do not create section entries. Tables/lists/body text can be searchable within their surrounding section. Important command/diagram conclusions need normal prose outside fences. Search index is a reader output artifact; it can disclose all included hidden/internal text.

In a Field Guide installation, search Workstation check then installed tools. Page result should reach intended article; heading result should reach actual fragment. Read prerequisites and expected results before using a command found by search.

In this handbook, search “metadata save” or “local recovery” and confirm destination/context. A ranked result does not prove its instructions are current, authorized or appropriate to your operating system. Use scope/version notes inside the page.

Index loading and staleness

State Interpretation
First open Lazy fetch using template base prefix
Loaded Prepared index reused in this page process
Network/parse failure Console error; results can appear empty
New query during fetch Stale earlier query response ignored
Cached old index Old routes/fragments can remain
Fresh navigation/reload Can reload index under cache policy

Fetch failure is not a permission-aware “no documents” answer. Check actual JSON response, not a 200 login/home fallback. The loader does not present every failure as a detailed visible error. Preserve console/network evidence and reconcile built versus served index.

Deploy HTML/resources/index together. A correct origin artifact with stale browser cache differs from old provider deployment/branch. Repeated text saves cannot repair a stale host/index. Health and diagnostics explains layer checks.

Control Meaning
Folder disclosure Expand/collapse children
Folder landing link Open overview
Normal page link Open article
Breadcrumb Current route ancestors
Previous/next Flattened visible sidebar order
Browser Back Your visit history
On this page rail H2 tasks on current page

Folders precede ordinary pages; folders use position/title, pages title sorting. Landings should state recommended task sequence rather than making readers infer it from alphabetic titles. A folder disclosure is not the same click as its link.

A hidden folder branch is absent from sidebar and visible sequence, not output/search. A current hidden article can have no previous/next cards because it is outside flattened navigation. No reader-role filtering follows from collapse/hidden state.

Sidebar visibility, expansion and scroll position are browser-local preferences. They do not edit source or synchronize devices/accounts. Storage restrictions can prevent remembered state; inspect immediate interaction separately from persistence.

Phone drawer

Normal-page selection closes menu. Folder landing selection can preserve open drawer through navigation to continue exploration. Backdrop/Escape closes. Do not report folder staying open as the same failure as an article staying open.

Test actual controls, longest nested labels and available height. A no-overflow result does not prove drawer focus/touch/keyboard works. Use browser Back for visit history and landing links for deliberate learning order.

Copy exact built fragment. Title/folder changes can move full route; heading changes move fragment independently. ASCII page slug and heading normalization differ, especially Hebrew-only/non-Latin text at this pin. Do not infer a translated path.

Open copied result in fresh tab and reload deep route directly. A client click that appears to work does not prove server deep-route handling. Missing URL must have intended 404 behavior rather than misleading home 200. MarkStack does not create host redirects automatically.

Theme and acceptance gate

Theme defaults dark until saved browser choice applies; toggle then reload to test persistence. It is not an account/admin synchronized setting. Reader storage wrappers allow immediate controls without saved preferences when storage is blocked. Check persistence separately; not all restricted browser modes were tested.

Check Pass condition
Search entry Actual palette and minimum query
Page query Intended route opens
Heading query Exact fragment opens/reloads
Keyboard Open, arrows, Enter, Escape/focus
Index Current JSON, not fallback/stale
Sidebar Disclosure versus link understood
Phone Normal page closes, folder behavior verified
Missing route Actual intended status/destination

These are task checks, not blanket accessibility/browser certification. Reader experience and Validation limits retain network/device/production boundaries.