Skip to content

Fix the issues found in the site audit - #270

Merged
Zethson merged 5 commits into
mainfrom
site-audit-fixes
Aug 23, 2026
Merged

Fix the issues found in the site audit#270
Zethson merged 5 commits into
mainfrom
site-audit-fixes

Conversation

@Zethson

@Zethson Zethson commented Aug 23, 2026

Copy link
Copy Markdown
Member

Fixes everything from the site audit except the feature suggestions, in five commits.

Broken links

  • mudata.readthedocs.io/en/latest/ 404s in 7 places, including the homepage core-package card — RTD dropped the language segment
  • x.com/scaboranova in the 2025 conference summary is not a real account
  • Aviv Regev and Fabian Theis profile links have moved
  • /conference2024/ is linked twice but was never published

Metadata

  • no <meta name="description"> on any page
  • <meta charset> at byte 1582, past the 1024-byte limit
  • titles carry no site name — tabs read just "Packages"
  • no canonicals, no robots.txt, no RSS autodiscovery for the 12 feeds already generated, no 404 page
  • series taxonomy has no terms and only emits an empty feed
  • buildFuture is only a CI flag, so hugo server hides every upcoming event

Accessibility

  • the homepage has no h1 — the wordmark is a styled span
  • six pages emit 2–4 h1s; anndata 0.13 has four
  • 15 images with no alt, all on the media kit
  • the demo's run controls are divs with click handlers: no keyboard access, no accessible name
  • no prefers-reduced-motion despite the looping animation; 18 of 168 images lazy-loaded
  • SnapATAC2 renders a src-less <img>

Weight (22 MB → 6.8 MB)

  • conference background 3.6 MB at 5196px; a speaker portrait 1.8 MB at 4554px for a 132px slot; a blog screenshot 14821px wide
  • fonts shipped as TTF; Nunito present but never referenced; bootstrap.min.js never loaded; ~1 MB of vendor source maps deployed
  • 120 ecosystem cards all painted up front

Structure

  • the 2025 conference template hand-rolls its head: no favicon, no OG image, no Twitter card, no analytics, and Inter from Google's CDN while the site self-hosts it
  • the conference is in neither the nav nor the footer, though registration is open
  • the homepage never mentions any event
  • blog posts declare an author that the listing drops
  • hardcoded copyright year

MuData's docs dropped the language segment from their URLs, so every mudata.readthedocs.io/en/latest link on the site 404'd, including the core package card on the front page.
The 2025 conference summary linked x.com/scaboranova, which does not exist; the account is @scverse_team.
Two management committee profiles in the announcement post had moved: Fabian Theis to helmholtz-munich.de/en/icb, Aviv Regev to gene.com.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@netlify

netlify Bot commented Aug 23, 2026

Copy link
Copy Markdown

Deploy Preview for jade-cajeta-1bcca0 ready!

Name Link
🔨 Latest commit b800c2c
🔍 Latest deploy log https://app.netlify.com/projects/jade-cajeta-1bcca0/deploys/6a8b5bf2428226000812f745
😎 Deploy Preview https://deploy-preview-270--jade-cajeta-1bcca0.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

No page carried a <meta name="description">, so search engines had nothing to quote; Open Graph and Twitter descriptions were there but those are not the same tag.
<meta charset> sat at byte 1582, past the 1024-byte limit the spec allows, because it came after the title, the stylesheets and every social tag.
Titles carried no site name, so tabs and search results read just "Packages" or "People".
Also adds canonical URLs, RSS autodiscovery for the twelve feeds that were already being generated, a robots.txt with a sitemap pointer, and a 404 page, and drops the series taxonomy, which had no terms and only produced an empty feed.
buildFuture moves into the config so that a local hugo server lists upcoming events the way production does.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
The front page had no h1 at all: the wordmark was a styled span, so neither search engines nor screen readers had a document title to anchor on.
Six pages emitted more than one h1 because the layout renders the title as h1 and the body then started at level one again; anndata 0.13 had four.
The media kit, which is a page made entirely of images, had fifteen of them with no alt text.
The landing page demo's run controls were divs with click handlers, so they could not be reached or triggered from a keyboard, and had no accessible name.
Also adds a prefers-reduced-motion block, a focus ring for those controls, lazy loading for images below the fold, and drops the src-less <img> that SnapATAC2 rendered for its missing icon.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
Photographs were being shipped at their original capture size: the 2026 conference background at 5196px and 3.6 MB, a speaker portrait at 4554px and 1.8 MB for a slot the stylesheet renders 132px wide, and a blog screenshot at 14821px.
Those are now resized to what the page actually uses and stored as WebP, and the pre-commit hook that already did this for blog and learn images covers events too.
The media kit keeps PNG for the three files it advertises as PNG downloads; scverse-lettering, which is only ever displayed, becomes WebP.
Nunito was in the repo but no rule referenced it, and bootstrap.min.js was never loaded because the head takes the bundle, so both go along with about a megabyte of source maps for minified vendor files.
Inter and JetBrains Mono become woff2, which is a third of the size, and gain font-display: swap so text is not invisible while they load.
Ecosystem cards get content-visibility so the browser can skip painting the ones off screen, and anndata_schema.svg goes through svgo.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
The 2025 conference page uses its own template, and that template hand-rolled a head: no favicon, no Open Graph image, no Twitter card, no analytics, and Inter pulled from Google's CDN even though the site self-hosts the same font.
The conference appeared in neither the navigation nor the footer, so the only route to a registration page that is currently open was the events list.
The landing page never mentioned the events scverse runs; it now leads with the next one.
Blog posts all declare an author and the listing threw it away.
Also adds a footer column for the conference, the donation page and the blog feed, replaces the hardcoded copyright year, and repoints two links to /conference2024/, a page that was never published.

Signed-off-by: Lukas Heumos <lukas.heumos@posteo.net>
@Zethson
Zethson merged commit 5c51826 into main Aug 23, 2026
6 checks passed
@Zethson
Zethson deleted the site-audit-fixes branch August 23, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant