Skip to content

Optimize PNGs; accessibility, lint and content fixes from review - #98

Merged
bits-bytes-nn merged 9 commits into
mainfrom
optimize-png
Oct 15, 2026
Merged

bits-bytes-nn merged 9 commits into
mainfrom
optimize-png

Conversation

@bits-bytes-nn

Copy link
Copy Markdown
Owner

Lossless PNG optimization plus the fixes from five adversarial review rounds (code/tests/docs and UI/UX). The final round of each found 0 MAJOR issues.

Changes

  • Images: every PNG recompressed with oxipng -o 4 --strip safe, 20.8 MB → 14.8 MB, and every image's decoded pixels match the original. Two hotlinked figures in the agentic-patterns pair (ReAct, Tree of Thoughts) had stopped loading (403 / blocked by ORB); they are now served from assets/images/. The unused vector-search.jpg is removed.
  • Accessibility:
    • Scrollable tables, code blocks and display equations get numbered labels.
    • Listing pages tag each title with its post's lang.
    • Insights, Tags and Categories are lang: en pages. Search stays a Korean page, with its English controls tagged.
    • Empty table header cells are labelled.
  • Print: the RSS line no longer prints.

New script/lint-posts.rb rules (for scholar-lens)

  • Table header's first cell is empty.
    • Fails: | | A | B |
    • Passes: | 모델 | A | B |
  • Translationese (same regex as scholar-lens markdown_lint.py): 되어[지진져집], 보여[지진져], 에 있어서[는도의], 에 있어[는의], [음함]에 있어.
    • Fails: 그림에서 보여지는 곡선, 추론에 있어서는, 학습함에 있어
    • Passes: 이 점에 있어서 중요합니다
  • A sentence ending in a colon (다:).
    • Fails: 다음과 같이 작동합니다:
    • Passes: the same text in a heading, a quote, a quoted span, a table row (indented too), image alt text, code, or the References / 참고 자료 list.
  • paper_doi with an arXiv version is rejected.
    • Fails: 10.48550/arXiv.2310.06825v2 ("drop the vN")
    • Passes: 10.48550/arXiv.2310.06825
  • The lightbox check now reads src after an attribute containing >, and in an uppercase <IMG>.

_data/post_conventions.yml is unchanged.

Hand fixes to generated posts

Regenerating these papers overwrites the fixes.

  • Mixtral of Experts: three empty first header cells are now 벤치마크 / 지표 / 데이터셋.
  • DeepSeek LLM: "토크나이저 구현에 있어서는 … 알고리즘을 구현했습니다" became "토크나이저는 … 알고리즘으로 구현했습니다".
  • DeepSeekMath: "수학적 추론에 있어서는" became "수학적 추론에서는".
  • The Llama 3 Herd of Models: "그림에서 보여지는 IsoFLOPs 곡선" became "그림의 IsoFLOPs 곡선".
  • Gemini 1: "전반에 걸쳐 보여진 바와 같이" became "전반에서 보였듯이".
  • Mistral 7B: "다음과 같이 작동합니다:" became "다음 순서로 작동합니다."

Hand-written posts (Insights): empty header cells labelled in claude-code-source-map, evolution-of-ai-agentic-patterns and ai-ready-data (ko and en).

Verification

  • tests: 175 runs, 0 failures
  • lint: 35 posts pass
  • strict build, htmlproofer and validate-site.sh all pass
  • 52 pages swept in Playwright, light and dark, at 7 widths: no overflow, no broken images, no console errors, no axe violations

oxipng -o 4 --strip safe; each image is pixel-identical to the original,
colour profile included.
…nused cover

The lightbox rule now finds src after an attribute holding '>', and an
arXiv DOI with a version suffix is rejected. Insights and Search are
English pages and say so. vector-search.jpg had no reference left.
They all shared one name per kind, so a screen reader's landmark list
showed a run of identical entries.
…-blind; tag Tags and Categories as English

The lightbox lint captures the img inside its own match, so an <IMG> no
longer crashes it.
…hipped

The same two prose rules scholar-lens applies to generated posts. Hand
fixes: DeepSeek LLM, DeepSeekMath ('에 있어서는'), Llama 3, Gemini
(double passive), Mistral 7B (a sentence ending in a colon).
… language

The ReAct and Tree-of-Thoughts figures in the agentic-patterns pair were
hotlinked and now 403 or are blocked; they are served from assets/images.
Listing pages tag each title with its post's lang, so Korean titles on an
English page are read in Korean; Search goes back to a Korean page with
its English controls tagged. Empty header cells get a label, and the RSS
line no longer prints.
…alt exemptions

Indented table rows and image alt text are skipped, as scholar-lens
skips them, so a generated post does not fail here alone.
The cell names nothing to a screen reader, and nine tables shipped that
way; only the rule keeps a regenerated post from bringing them back.
A versioned arXiv DOI gets its own message, and the home page tags its
titles' language like the other listings.
@bits-bytes-nn
bits-bytes-nn merged commit 81fcf75 into main Oct 15, 2026
3 checks passed
@bits-bytes-nn
bits-bytes-nn deleted the optimize-png branch October 15, 2026 11:32
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