development | Infinite Scale | marketplace | opensource | OSPO | ownCloud | Product | Release | Updates

Alt Text for Every Image. No Manual Work. No Excuses.

Missing alt text is one of the most commonly flagged WCAG failures. EN 301 549 mandates it for public sector ICT across Europe. As of today, oCIS ships an extension that generates a credible first draft with your configured vision LLM, lets the user edit it, and writes it back to the file as a WebDAV property that survives the session. A meaningful compliance tool, not just a convenience feature.

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

ownCloud

13. Juli 2026

Read now:

ownCloud Server 11.0.0-rc1: First Release Candidate for the Next Major Version

ownCloud Server 11.0.0-rc1: First Release Candidate for the Next Major Version

The first release candidate for ownCloud Server 11 is out. This is the release that surfaces breakage: PHP 7 support dropped, deprecated database and group-management classes removed, major version bumps to Doctrine DBAL and Symfony, subadmin disabled by default. Three security fixes underneath.
Do not deploy in production. Do test against your apps and integrations.

mehr lesen
ownCloud Infinite Scale 8.1.0: MFA-Gated Vault Storage Arrives

ownCloud Infinite Scale 8.1.0: MFA-Gated Vault Storage Arrives

oCIS 8.1.0 introduces MFA-gated vault storage as an isolated storage plane: its own provider ID, no public or federated sharing path, MFA propagated end to end, and a UI that makes the distinction obvious. Plus a public-share access control fix and roughly 60 other changes across indexing, LDAP, and connection recovery.

mehr lesen
The New ownCloud Marketplace: Git Is the App Store

The New ownCloud Marketplace: Git Is the App Store

The new ownCloud Marketplace is live. 13 Web Extensions, 42 apps, 324 releases, 36 publishers and counting. Zero backend. Zero database. Zero server-side processing. The Git repository is the source of truth. The catalogue is static JSON. Publishing an app is a pull request. Git is the app store.

mehr lesen