Extensions that bury settings inside the popup — with no options_page or options_ui entry in the manifest — force users to discover configuration through trial and error. Right-clicking the extension icon yields only Chrome's default context menu entries; settings are unreachable through the standard path users expect. Users who lose or reset their popup state cannot recover their preferences, and enterprise administrators managing deployed extensions have no canonical settings surface to document. Discoverability collapses and advanced features go unused.
Low because settings remain reachable through the popup but discoverability suffers for new and returning users.
Declare options_ui in manifest.json so Chrome exposes an Options entry in the standard extension context menu, and add a settings link in the popup so users discover it from either path. Prefer embedded options over open_in_tab: true for simple settings:
{ "options_ui": { "page": "options.html", "open_in_tab": false } }
Wire the popup link with chrome.runtime.openOptionsPage() in popup.js.
ID: extension-ux-performance.browser-ux.options-accessible
Severity: low
What to look for: Check whether an options_page or options_ui is declared in manifest.json. If options exist, verify they are accessible via the standard Chrome extension context menu (right-click on the extension icon, then Options). Check options_ui for "open_in_tab": true vs. false (embedded page) — both are valid, but embedded is preferred for simpler settings. Look for whether settings exposed in the options page duplicate settings buried in the popup, and whether the popup provides a clear link to the options page. Count all instances found and enumerate each.
Pass criteria: An options page is declared in manifest and is reachable via the standard Chrome extension menu. If the extension has configurable settings, they are in the options page (not only in the popup). Popup includes a link or gear icon linking to options for discoverability. At least 1 implementation must be confirmed.
Fail criteria: Extension has meaningful configurable settings but no options_page or options_ui declared in manifest — settings only accessible via a non-standard path. OR options page exists but popup has no link to it, making it undiscoverable to most users.
Skip (N/A) when: The extension has no configurable settings — it is a single-purpose tool with no user preferences (e.g., a simple tab counter or clipboard helper with no options to configure).
Detail on fail: Describe the accessibility issue. Example: "Extension has 8 configurable settings (theme, behavior, filters) but no options_page declared in manifest — users cannot reach settings via standard right-click menu" or "Options page declared but popup has no link to it — users must right-click extension icon to discover settings exist."
Remediation: Declare an options page in your manifest:
{
"options_ui": {
"page": "options.html",
"open_in_tab": false
}
}
Add a settings link in your popup:
document.getElementById('settingsBtn').addEventListener('click', () => {
chrome.runtime.openOptionsPage();
});