HermodLens 1.0.1 user manual

HermodLens answers four questions about the documents on a website before anyone quotes or plans remediation:

  1. Which documents do these pages link to?
  2. How bad is each PDF: scanned, untagged, or tagged with gaps?
  3. How many pages fall into each class?
  4. Roughly what will it cost at the rates you use?

It runs on your computer as a Chrome extension. It has no account, does not upload anything, and contacts only the sites you allow.

Important. HermodLens is a triage tool. Its checks are the ones a machine can make reliably. It does not certify conformance with WCAG 2.1, Section 508, EN 301 549 or PDF/UA, and it is not legal advice. Plan for a person to review every document.

The screenshots in this manual are real captures of version 1.0.1 in Chrome for Testing 151.0.7922.34 on Linux x64. They use the fictional "Hollowmere Township" example site included in the download.

---

1. Install and open

Follow the installation guide: load the extension folder with Load unpacked on chrome://extensions. Then open HermodLens with its toolbar button or Alt+Shift+H. The workspace opens in a new tab and has five numbered sections, which are linked from the top bar.

To practise first, run the example site from the download folder:

node tools/serve.mjs

and paste the six URLs it prints.

2. Define the scope

You can combine any of these inputs in one project:

InputUse it when
Pages to scanYou know the pages that list documents: agendas, forms, policies, department pages. HermodLens reads each page's HTML and collects links to PDF, Word, Excel, PowerPoint, OpenDocument and RTF files. It also collects links that match known CMS patterns without an extension, such as CivicPlus /DocumentCenter/View/ and Granicus /showpublisheddocument/. It does not follow other links.
Document URLsYou already have a list, for example a crawler export, a CMS media report, or a list from a records clerk.
Page you were viewingThe document list on a page is built by JavaScript or sits behind a login. See section 4.
Local filesYou have the files themselves, for example a media-library export or a shared drive. They are analysed in memory and never uploaded.

Give the project a name; it appears in exports. Advanced settings let you change:

Choose Scan pages and documents.

3. Allow access, site by site

Chrome asks before HermodLens reads any site. The dialog names the exact host. Choose Allow.

Chrome's own permission dialog asking to read and change data on 127.0.0.1

If the pages link to documents on another host (a CDN, a document server, a second domain), HermodLens stops and lists those hosts before downloading anything from them. Choose Allow and continue, then allow them in Chrome's dialog. Choose Skip these hosts to leave them out. Skipped documents stay in the register as "Cannot assess" so nothing disappears silently.

The workspace listing a second document host, with Allow and continue and Skip these hosts buttons

Pages and documents are downloaded without your cookies, so you get what an anonymous visitor gets. Progress and every result appear in 2. Run; Cancel stops the run and keeps what has been analysed.

You can review or remove site access at any time on chrome://extensions → HermodLens → Details → Site access.

Some CMS widgets build their document list in the browser, so it is not in the page HTML. For these pages:

  1. Open the page in Chrome. Wait until the list is visible.
  2. Click the HermodLens toolbar button, or press Alt+Shift+H, on that tab.
  3. In the workspace, choose Collect document links from this tab.
  4. Choose Scan pages and documents. The collected links are analysed together with the rest of the scope.
The Page you were viewing card after collecting two document links from the Public records page

This works for pages behind a login too, because links are read from the page you are looking at. The documents are still downloaded anonymously, so files that need a login appear as "Cannot assess" with the server's answer (for example HTTP 403).

5. Read the register

3. Register lists one row per document in priority order:

  1. documents you mark Service-critical;
  2. then by class, worst first;
  3. forms before other documents;
  4. then longer documents first.
The register with class chips, filters and one row per document

Classes

ClassMeaningTypical next step
Cannot assessDownload failed, HTTP error, password required, too large or unreadable.Fix the link or file, or ask the owner for an unlocked copy.
Image-only (scan)No page has a text layer: scanned pages, or text converted to outlines.OCR, then full tagging, or replace with a web page.
Partly scannedSome pages have images or drawings but no text layer.OCR those pages, then tag.
UntaggedHas text but no tag structure.Tag (Acrobat, CommonLook, a vendor, or re-export from the source file with tags).
Tagged, gaps foundTagged, but at least one basic property is missing.Usually quick fixes: title, language, alt text, field tooltips, bookmarks.
Tagged, no machine-found gapsPassed every check HermodLens makes.Manual review: reading order, tag correctness, alt-text quality, tables, contrast.
Office documentDOCX, XLSX, PPTX, legacy Office, OpenDocument or RTF.Check in its own application (light checks only).
Not a documentThe link returned a web page or other content, often a "not found" page.Fix or remove the link.

Click a chip, or use Class, to filter. Search matches file name, title, host, URL and notes. Hide duplicates hides files whose bytes are identical to another listed URL. Column headings sort the table: press once for ascending order and again for descending.

What is checked in each PDF

Each issue in Details names the related WCAG success criterion or PDF technique, for example WCAG 3.1.1; PDF16 for a missing language.

Details, decisions and notes

Choose Details on a row to see every property, the issues, the pages that link to the document and the link texts used. Write a Note; it is saved and exported. Press Esc or Close details to return to the row.

Details panel for a password-protected PDF, listing the issue, properties, the linking page and a note field

For each document, set a Decision: Undecided, Remediate, Archive, Remove or Replace with web page. Tick Service-critical for documents people need to use a service, such as applications, forms, schedules and notices. Decisions are kept when you scan again.

HermodLens also flags links whose text does not describe the document, for example "click here", a bare URL or a file name (WCAG 2.4.4). This is a problem on the page, not in the file.

Check scope coverage before estimating

Actual scope coverage lists a page with no links and nine documents outside the estimate

After a scan, Scope coverage shows how many listed pages were read, failed, or returned no document links. Check each failed page URL and its access, then scan again. For a page with no links, confirm that it really has no documents; if the list is built by JavaScript, collect links from the live tab as described above. If you add document URLs or local files without scanning pages, coverage says that no pages were scanned. A saved PDF record without analysis is listed for follow-up and is excluded from the estimate until you scan or assess it.

The same section names documents outside the PDF estimate: duplicates, decisions excluded from the chosen scope, Office files, links that could not be assessed, and links that are not documents. Review in register opens the selected document's details. These items remain in the register and export for follow-up. A scan that finds no document links still allows an HTML report or JSON project export so failed and empty pages can be handed off; the CSV register requires at least one document.

6. Estimate

4. Estimate turns the register into quantities and a cost range:

LineQuantity
OCR of image-only pagespages without a text layer in image-only and partly scanned PDFs (the register's Pages needing OCR column)
Tagging and remediationall pages of untagged, scanned and partly scanned PDFs
Property fixesnumber of tagged PDFs with gaps
Manual verificationevery page of every PDF in scope
Form fields needing workfields in PDFs that are not "no machine-found gaps"
Estimate section with editable low and high rates, quantities and totals

Enter your own low and high rates and a currency label. The defaults are placeholders, not market prices. Use rates agreed for your own project and review the assumptions with the person who will do the work. Review the rates, currency and included decisions, then tick the confirmation box to show the estimate. Any change to those assumptions clears confirmation. An HTML report exported before confirmation labels the estimate unconfirmed and omits monetary totals.

Use Include documents marked to choose which decisions are priced. By default these are Undecided and Remediate. Duplicates are counted once. Office files, documents that could not be assessed and non-document links are counted but not priced. If a PDF was analysed only partly, its image-only pages are extrapolated from the analysed share; the note under the table says so.

7. Export and keep your work

5. Export writes files to your downloads folder:

First part of the exported HTML report: summary by class and estimate

The current project is saved automatically in the browser. Start a new project clears it; export first if you want to keep it.

Narrow windows and printing

The workspace fits narrow desktop windows. Wide register and rate tables have a labelled scroll region: focus it with Tab, then use the arrow keys. In a narrow window, the exported HTML report presents each document as a labelled card. Summary and estimate tables keep their columns inside their own scroll regions. Printing restores the document table. This is a desktop Chrome extension; a narrow-window check is not an iPhone installation.

Real HermodLens coverage and follow-up controls in a narrow desktop browser window

Open the actual fictional sample report without installing the extension. The matching CSV and JSON are in the same folder. These illustrate 17 document records; they do not represent a customer website.

8. Troubleshooting

SymptomCause and fix
"Access to those sites was not allowed"You chose Deny in Chrome's dialog. Scan again and choose Allow.
A page shows "no-permission" in the logAccess to that host was not granted. Scan again and allow it.
Many documents are "Cannot assess" with HTTP 403The server needs a login or blocks automated requests. Use local files instead.
A list on a page is missingIt is built by JavaScript. Use Collect document links from this tab.
A CMS document link was not foundAdd a fragment of its URL under Extra document URL patterns.
"Could not read that tab"Open the page and click the HermodLens button or press Alt+Shift+H on that tab, then collect again.
A large PDF shows "Analysed the first 500 of N pages"Raise Pages analysed per PDF in Advanced settings.

9. Limits of version 1.0

See ../PRIVACY.md for what is stored and where, and ../LICENSE.md for the licence.

Verified scope for this release

The local fictional site exercises selected-page scanning, a separate document host, PDF and Office triage, live-tab collection, local files, decisions, own-rate estimates and CSV/HTML/JSON exports. The runtime in the buyer ZIP is the one checked. This is not a validation of customer sites, managed Chrome policy, 300 pages or 2,000 documents, other browsers or other operating systems. Review files before sharing any report.