There’s a quiet compliance problem in almost every enterprise file sharing deployment. Images get uploaded without alt text. Not because anyone thinks accessibility is unimportant. Because writing alt text manually is slow, nobody enforces it, and „we’ll do it later“ becomes „we never did it.“
WCAG 2.2 requires descriptive alt text for all non-decorative images. EN 301 549 — the European accessibility standard for public sector ICT — mandates it. Organisations deploying oCIS in schools, government, and research institutions operate under these requirements. And until today, oCIS had no way to help meet them.
web-app-ai-image-alt-text-sidebar merged this morning. PR #467. 16 commits. Lukas Hirt.
What It Does
Select any image file in oCIS: .jpg, .png, .webp, .gif. An „Alt Text“ tab appears in the sidebar. Click it. The extension downloads the image via WebDAV, base64-encodes it, and sends it to your configured vision-capable LLM. The result appears in an editable text field. Copy it, edit it, or save it directly back to the file.
Generated alt text is persisted to the file as a WebDAV custom property: urn:oc:ai:alt-text:text. Written back via PROPPATCH. Retrieved on the next panel open via PROPFIND. The alt text survives the session, survives panel close, and will be ready when screen readers and search indexers learn to look for that property.
Three states based on LLM configuration:
- Vision model configured: full descriptive alt text generated. Copy, Regenerate, and Save available.
- Text-only model configured: panel shows a notice that the model doesn’t support image input and prompts the administrator to switch endpoints. Informed user, not a broken experience.
- No LLM configured: the Alt Text tab is hidden entirely. No confusion, no dead UI.
A 4 MB Guard and What It Tells You About the Engineering
The extension applies a 4 MB image size limit before encoding and sending the payload. Anything larger triggers a user-facing message. That guard is there because most vision LLMs have context window limits — a 12 MB product photo sent to a small local model will either fail silently or produce degraded output. The guard surfaces the limit explicitly.
Copy, Regenerate, and Save are three different buttons for three different use cases: put the alt text somewhere else, generate again if the first result missed the mark, or store it on the file.
WCAG, EN 301 549, and Why This Matters for Public Sector
The EU Accessibility Act entered into force in 2025. The Web Accessibility Directive has applied to public sector bodies since 2018. EN 301 549 is the harmonised standard. For any organisation deploying oCIS in a public sector context — one existing organisation using ownCloud alone serves millions of students — WCAG compliance isn’t optional.
Missing alt text is one of the most commonly flagged WCAG failures in automated audits. An extension that generates a credible first draft in seconds, lets the user edit it, and writes it back to the file in a persistent format is a meaningful compliance tool, not just a convenience feature.
Search engine indexing of the stored WebDAV property requires a future oCIS server-side change — explicitly noted as out of scope in the PR. The property is being written today so it will be ready when server-side support arrives.
The PR Was AI-Generated. So Was the Tooling.
The PR description itself was AI-generated, marked explicitly at the top: „AI-generated · OSPO-46 · Gate: ✅ 1.00.“ This is the AI-Assisted Contribution Policy in practice — not just on the code but on the entire pull request workflow.
The extension was generated using extctl — a tool Lukas built for scaffolding oCIS web extensions. Lukas isn’t just writing extensions. He’s building tooling that makes writing extensions faster. The OSPO-46 Jira ticket tracks this as part of a deliberate programme. Gate score: 1.00.
Five PRs in Eight Days
| Date | PR | What it does |
| June 15 | #443 | Apache-2.0 relicensing — foundation |
| June 17 | #452 | Document summary |
| June 17 | #454 | Chat with file |
| June 18 | #459 | Version changelog |
| June 22 | #467 | AI image alt text |
Find out more in the extension repository.
Find this extension in the ownCloud Marketplace
github.com/owncloud/web-extensions/pull/467
Lukas Hirt is a Collaborator on ownCloud web-extensions. PR #467 opened June 19, merged June 22, 2026.
ownCloud OSPO: moc.skrowetik@opso · kiteworks.com/opensource



