DigitalWonderlab.AltTextAssistant
1.1.1
See the version list below for details.
dotnet add package DigitalWonderlab.AltTextAssistant --version 1.1.1
NuGet\Install-Package DigitalWonderlab.AltTextAssistant -Version 1.1.1
<PackageReference Include="DigitalWonderlab.AltTextAssistant" Version="1.1.1" />
<PackageVersion Include="DigitalWonderlab.AltTextAssistant" Version="1.1.1" />
<PackageReference Include="DigitalWonderlab.AltTextAssistant" />
paket add DigitalWonderlab.AltTextAssistant --version 1.1.1
#r "nuget: DigitalWonderlab.AltTextAssistant, 1.1.1"
#:package DigitalWonderlab.AltTextAssistant@1.1.1
#addin nuget:?package=DigitalWonderlab.AltTextAssistant&version=1.1.1
#tool nuget:?package=DigitalWonderlab.AltTextAssistant&version=1.1.1
Alt Text Assistant
An Umbraco backoffice package that adds an Alt Text Assistant dashboard to the Media section. It lists every image in the media library that has no alt text, lets editors add alt text inline, and — when an AI provider is configured — suggests alt text from the image with a single click, or in bulk across the whole page.
Features
- Media section dashboard listing all images with no alt text, newest first, paged
- Inline editor with an image preview to add and save alt text without leaving the dashboard
- AI suggestions — one-click "Suggest with AI" reads the image and returns a concise, screen-reader- and SEO-friendly description
- Bulk suggest — generate suggestions for every image on the current page (throttled, cancellable), review, then Save All
- Bring your own key — supports Anthropic Claude, OpenAI, or Google Gemini vision models. First configured key wins
- Graceful without AI — with no key configured the dashboard still works for manual alt text; AI controls are hidden
- Works with any Image media type — the alt-text property alias is configurable, and the dashboard warns clearly if no alt-text field exists
- Edit in Media shortcut to jump to the full media item
- Missing-count badge so you can see progress at a glance
Compatibility
- Umbraco 17+
- .NET 10.0
- Works on Umbraco Cloud, Azure App Service, and all standard hosting environments
- No server-side dependencies beyond the CMS — image bytes are read via Umbraco's
MediaFileManagerand sent directly to your chosen AI provider over HTTPS
Requirements — an alt-text field on the Image media type
The package reads and writes an alt-text property on the Image media type. By default it uses the alias umbracoAltText.
A stock Umbraco install does not include an alt-text property on the Image media type. If yours doesn't, either:
- Add a textstring property (e.g. "Alt text") to the Image media type — use the alias
umbracoAltTextfor zero config, or - Point the package at your existing alias with
AltTextAssistant:AltTextPropertyAlias(see below).
If no matching property is found the dashboard shows a clear warning and saving is blocked, so it never silently fails.
Installation
dotnet add package DigitalWonderlab.AltTextAssistant
Restart the site, then open Media → Alt Text Assistant.
Configuration
All configuration lives under an AltTextAssistant section in appsettings.json. Every setting is optional.
Alt-text field alias (optional)
{
"AltTextAssistant": {
"AltTextPropertyAlias": "umbracoAltText"
}
}
Set this if your Image media type stores alt text under a different property alias.
AI provider (optional — enables AI suggestions)
AI suggestions are self-service and bring-your-own-key — the package makes no AI calls of its own. Until you add a key the AI buttons stay hidden and the in-app notice points editors here; manual alt text entry works throughout. You supply a key from your own provider account, calls are billed to you, and images are sent only to the provider you configure (see Privacy).
Add a provider API key. Only one is needed; if several are set the priority is Anthropic → OpenAI → Google.
{
"AltTextAssistant": {
"AnthropicApiKey": "sk-ant-...",
"OpenAIApiKey": "",
"GoogleApiKey": ""
}
}
The model can be overridden per provider (defaults shown):
{
"AltTextAssistant": {
"AnthropicApiKey": "sk-ant-...",
"AnthropicModel": "claude-haiku-4-5-20251001",
"OpenAIModel": "gpt-4o",
"GoogleModel": "gemini-2.0-flash"
}
}
Keep API keys out of source control — use user secrets, environment variables, or your host's app settings / key vault rather than committing appsettings.json.
Without any key configured the AI buttons are hidden and the dashboard works for manual alt text entry.
How it works
GET /umbraco/management/api/v1/alt-text-assistant/images— pages the media library for images with no alt textPOST /umbraco/management/api/v1/alt-text-assistant/save— writes the alt-text property back to a media itemPOST /umbraco/management/api/v1/alt-text-assistant/suggest— reads the image and calls the configured AI providerGET /umbraco/management/api/v1/alt-text-assistant/config— reports whether AI is enabled, the alt-text alias, and whether that field exists
All endpoints require an authenticated backoffice user.
Privacy
When you use AI suggestions, the image is sent to the AI provider you configured (Anthropic, OpenAI, or Google) using your own API key, under your own account and their terms. Images are only sent when you click Suggest, and never if no key is configured. Separately, the package sends us a small anonymous daily usage report with no images, alt text or keys in it; see Telemetry below to see exactly what it contains or turn it off.
Telemetry
Once a day Alt Text Assistant sends us a small anonymous report so we know how many sites use it and on which versions. It is on by default and easy to turn off.
- Sent: a random install ID (created on first run, stored in your Umbraco database, not derived from anything
about your site), the package, Umbraco and .NET versions, environment type, hosting type, database type, the image
library's rough size in bands such as
100-999, which AI provider is configured (never the key), and how many suggestions and saves were made in the last day (banded). - Never sent: API keys, images, alt text, file or media names, hostnames, URLs, user names, emails or IP addresses.
- See it / turn it off: the dashboard's Settings tab shows exactly what is sent and has an on/off switch. Or set
"AltTextAssistant": { "Telemetry": { "Enabled": false } }, or"DigitalWonderlab": { "Telemetry": { "Enabled": false } }for every Digital Wonderlab package. - Local development (
ASPNETCORE_ENVIRONMENT=Development) never sends anything. Data is kept for 13 months.
Issues / Suggestions
Please use the GitHub issue tracker: https://github.com/dwlkev/DigitalWonderlab.AltTextAssistant/issues
Licence
MIT © Digital Wonderlab
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Management (>= 17.0.0 && < 19.0.0)
- Umbraco.Cms.Core (>= 17.0.0 && < 19.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0 && < 19.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.