Acessibility management in DAM

Acessibility management in DAM

 

🎬 Accessibility Feature (DAM Dialog)

Dialog used to manage accessibility content for video or audio assets: subtitles, transcriptions, and audio descriptions.
The dialog is opened from an action available in the asset detail view (DAM).


1. Enable the feature

1.1 Named action

Named action damAccessibility, declared in the named-actions configuration (e.g. common/named-actions/dam-accessibility.json):

{ "i18n": "dam.accessibility.action", "icon": "fal fa-closed-captioning", "action": "dam/accessibility", "security": "objectdata/editvideosubtitles", "onlyForBlobs": true, "onlyForRootNatures": ["video", "audio"] }
  • security: required permission to display and use the action (see § Security)

  • onlyForBlobs: ensures the current entity binary is a BLOB_ATTACHMENT

  • onlyForRootNatures: asset types for which the button is displayed (e.g. video, audio)


1.2 Display the action in the asset detail view

In the DAM detail configuration (e.g. dam/details/actions.json), add the action identifier to the actions list:

{ "actions": [ ..., "damAccessibility", "damDownload", ... ] }

2. Dialog configuration (dam.details.accessibility)

The feature reads its configuration from config.dam.details.accessibility.

2.1 Minimal structure

{ "i18nPrefix": "dam.accessibility", "categories": [ { "id": "subtitles", "onlyForAssetNatures": ["video"], "acceptedFiles": [".vtt", ".srt", ".sbv", ".ass", ".ssa"] }, { "id": "transcription", "onlyForAssetNatures": ["video", "audio"], "acceptedFiles": [".txt"] }, { "id": "audiodescription", "onlyForAssetNatures": ["video"], "acceptedFiles": [".ogg", ".mp3", ".wav", ".m4a"] } ], "languagesCursorPath": "", "languages": [ { "code": "fr-FR", "nameI18n": "dam.accessibility.lang.fr-FR", "nativeName": "Français" }, { "code": "en-US", "nameI18n": "dam.accessibility.lang.en-US", "nativeName": "English (US)" } ] }

If nativeName is provided, it will be displayed. Otherwise, the system will use the i18n value of "dam.accessibility.lang.CODE", with a fallback to code if nameI18n is not defined.

You can also provide a cursor path (languagesCursorPath) to load languages dynamically instead of using static configuration.


2.2 Configuration properties

Property

Type

Description

Property

Type

Description

i18nPrefix

string

Prefix for i18n keys (titles, labels, toasts). Default: dam.accessibility

categories

array

List of categories (subtitles, transcription, audio description). See § Categories

languages

array

Available languages (selector). Each item: code (BCP-47), flag, nameI18n, nativeName, optional direction (ltr | rtl)

itemActions

array

(Optional) Row-level actions (edit, delete). See § itemActions


2.3 Categories

Each category must include:

  • id: technical identifier (subtitles, transcription, audiodescription)

  • onlyForAssetNatures: asset types where the category is available (e.g. ["video"], ["video", "audio"]). If empty or missing, the category is available for all asset types

  • acceptedFiles: allowed file extensions for upload (e.g. [".vtt", ".srt"])


2.4 Row actions (itemActions)

To display “Edit” and “Delete” buttons for each row:

"itemActions": [ { "action": "edit", "icon": "fal fa-pencil", "i18nKey": "action-edit" }, { "action": "delete", "icon": "fal fa-trash", "i18nKey": "action-delete" } ]
  • action: edit or delete (handled by the component)

  • icon: Font Awesome class (or equivalent)

  • i18nKey: i18n key relative to i18nPrefix (e.g. dam.accessibility.action-edit)

If itemActions is not defined, no row-level actions will be displayed.


🔐 Security

Front-end rule (named action)

The named action requires the permission:

"security": "objectdata/editvideosubtitles"

Without this permission, the “Accessibility” button is not displayed.
All operations (add, edit, delete) are restricted to users with subtitle editing rights.

This can be done in wedia-config :

 

 


✅ Front setup checklist

To properly enable the feature in a project:

  • Declare the named action damAccessibility in common/named-actions/dam-accessibility.json

  • Add "damAccessibility" to the actions list in dam/details/actions.json

  • Ensure the permission objectdata/editvideosubtitles is granted to the appropriate roles

  • Configure config.dam.details.accessibility with at least categories and languages

  • (Optional) Configure itemActions to enable edit/delete actions per row

  • (Optional) Use languagesCursorPath to load languages dynamically instead of static configuration