Image & Video APIs

Interactive content and controls

Last updated: Aug-26-2025

User interface components and navigation must be operable by all users, regardless of their physical abilities or the input methods they use. This means ensuring that users can interact with and navigate your content using various methods including keyboards, screen readers, voice commands, or other assistive technologies.

For media content, operability encompasses several key areas: providing alternatives to motion-based content for users with vestibular disorders, ensuring all interactive elements are keyboard accessible, and designing interfaces that work seamlessly with assistive technologies. Users with motor impairments, visual disabilities, or other conditions need content that responds predictably to their preferred interaction methods.

This section covers Cloudinary's tools and widgets that support operable interfaces, including techniques for managing animated content, implementing keyboard-accessible galleries, and creating video players that work with assistive technologies.

Operability considerations

Consider how users will interact with and control your media content. Some users rely on keyboards instead of mice, others may be sensitive to motion and flashing content, and many need the ability to pause or adjust audio that plays automatically. Design your media experiences to accommodate different interaction methods and user preferences.

Consideration Cloudinary Image Techniques WCAG Reference
Consider users who may be sensitive to motion or prefer reduced animations.

They may want the option to disable or reduce motion effects that aren't essential to understanding your content.

🔧 Convert animations to still images 2.3.3 Animation from interactions

Cloudinary's UI widgets have been built with operability considerations in mind, including keyboard navigation, focus management, and user control features. For detailed information about the accessibility features available in these components, see the Cloudinary Product Gallery widget and Cloudinary Video Player sections.

Convert animations to still images

Many users have vestibular disorders, seizure conditions, or other sensitivities that make animated content problematic or even dangerous. WCAG Success Criterion 2.3.3 requires that motion animation triggered by interaction can be disabled unless the animation is essential to the functionality. Additionally, some users simply prefer reduced motion for better focus and less distraction.

Cloudinary provides several approaches to make animated content accessible by converting animations to still images or providing user control over motion.

Understanding motion sensitivity

Users may need reduced motion for various reasons:

  • Vestibular disorders: Inner ear conditions that cause dizziness and nausea from motion
  • Seizure disorders: Flashing or rapid motion can trigger seizures
  • Attention disorders: Animation can be distracting and make it difficult to focus
  • Migraine triggers: Motion can trigger or worsen migraines
  • Battery conservation: Reducing animation saves device battery life
  • Bandwidth limitations: Still images use less data than animated content

Extracting still frames from animations

You can extract a single frame from an animated GIF or video to create a still image alternative. This is useful for providing a static version of animated content.

Animated GIF of kittens playing Original animation Still frame from kitten animation Still frame (page 3)


Use the page parameter (pg_) to extract a specific frame from an animated GIF:

You can also extract the first frame by converting the format to a static image format like JPG or PNG:

Implementing user-controlled motion preferences

The most accessible approach is to respect user preferences for reduced motion. Modern browsers support the prefers-reduced-motion CSS media query, which you can combine with Cloudinary transformations to serve appropriate content.

Here's an interactive demo showing how to implement motion preferences:

Kittens playing - animation respects motion preferences
Current setting: Motion enabled
Current image URL:
https://res.cloudinary.com/demo/image/upload/c_scale,w_400/kitten_fighting.gif

Implementation examples

Here are some examples of respecting the prefers-reduced-motion setting:

React:

HTML:

CSS:

Video posters

For video content, you can extract a poster frame to show when motion is reduced:


The poster frame uses the start offset (so_) parameter to extract a frame from 10.2 seconds into the video.

You can also use so_auto to let Cloudinary automatically choose the best frame to use as the poster.

Best practices for motion accessibility
  • Respect system preferences: Always check for prefers-reduced-motion: reduce
  • Provide user controls: Allow users to toggle motion on/off regardless of system settings
  • Choose meaningful still frames: Select frames that best represent the animated content
  • Maintain functionality: Ensure that stopping animation doesn't break essential features
  • Test with users: Verify that reduced motion versions are still informative and useful
  • Consider alternatives: Sometimes a different approach (like a slideshow) works better than a single still frame

Cloudinary Product Gallery widget

The Cloudinary Product Gallery widget provides comprehensive accessibility features that ensure users with disabilities can effectively navigate and interact with product galleries. The widget includes keyboard navigation, screen reader support, and customizable display options that meet WCAG operability requirements.

Keyboard accessibility

The Product Gallery enables full keyboard accessibility for users who cannot use a mouse or rely on assistive technologies. All interactive elements are accessible using standard keyboard navigation:

Keyboard Navigation Controls

Key
Action
Tab
Navigate forward through interactive elements
Shift + Tab
Navigate backward through interactive elements
Enter
View an asset or activate zoom
Escape
Exit zoom mode or close overlays
Spacebar
Play/pause videos
Arrow Keys
Navigate between gallery items

Accessible configuration options

For the most accessible experience, Cloudinary recommends these configuration settings:

Screen reader support

The Product Gallery provides semantic markup for screen readers and uses alt text from your configured metadata sources. You can specify where the gallery should look for alt text using the accessibilityProps parameter:

Using structured metadata for alt text:

Using contextual metadata for alt text:

If no alt text source is configured or the specified metadata field is empty, the gallery defaults to descriptive text in the format "Gallery asset n of m".

Focus management and visual indicators

The Product Gallery provides clear visual focus indicators that help users understand their current position within the gallery:

  • High contrast focus rings: Clearly visible borders around focused elements
  • Logical tab order: Sequential navigation through thumbnails, main viewer, and controls
  • Focus trapping: When zoom is activated, focus remains within the zoom interface
  • Expanded mode benefits: In expanded mode, focus areas are more visually prominent

Video accessibility features

When displaying videos in the Product Gallery, accessibility features include:

  • Keyboard controls: Spacebar to play/pause, Enter to activate full controls
  • Screen reader announcements: Video state changes are announced to assistive technology
  • Simplified controls: The controls: "play" option reduces interface complexity
  • Caption support: When using the Cloudinary Video Player, captions and subtitles are fully supported

Responsive accessibility

The Product Gallery maintains accessibility across different viewport sizes:

  • Mobile optimization: Touch-friendly controls and appropriate sizing
  • Viewport breakpoints: Maintains usability as layout adapts to screen size
  • Consistent navigation: Keyboard accessibility preserved across all breakpoints

Best practices for accessible Product Galleries
  • Provide meaningful alt text: Use structured or contextual metadata to supply descriptive alt text for all images
  • Use expanded mode for better focus visibility: The expanded display mode provides more prominent focus indicators
  • Simplify video controls: Use controls: "play" to reduce cognitive load
  • Test with keyboard only: Ensure all functionality is accessible without a mouse
  • Provide captions for videos: When using videos, include captions or transcripts
  • Consider loading states: Ensure loading indicators are announced to screen readers
  • Test with screen readers: Verify that the gallery provides a logical and informative experience for screen reader users

Cloudinary Video Player

The Cloudinary Video Player is designed to provide an inclusive video experience that meets WCAG 2.1 AA compliance standards. The player includes comprehensive accessibility features that ensure users with visual, auditory, motor, and cognitive impairments can fully engage with video content through assistive technologies, keyboard navigation, and other accessibility-friendly enhancements.

Accessibility features overview

The Cloudinary Video Player provides extensive accessibility support including:

  • Full keyboard navigation: All controls accessible via Tab key with clear focus indicators
  • Screen reader compatibility: ARIA attributes and semantic markup for assistive technologies
  • Closed captions and subtitles: Multi-language support with customizable styling (refer to Video captions)
  • Audio descriptions: Support for descriptive audio tracks and caption-based descriptions (refer to Audio descriptions)
  • Video chapters: Easy navigation to key sections for improved usability
  • Adjustable playback: Variable speed controls for better comprehension
  • High-contrast UI: Customizable themes for improved visibility (refer to Customizable caption styling)

Tip
For full details, see the Video Player accessibility guide.

Live accessibility demo

Here's a working Cloudinary Video Player demonstrating accessibility features. Try navigating the controls using only your keyboard (Tab, Space, Arrow keys) and notice the clear focus indicators:

🎬 Accessible Video Player Demo

Keyboard Controls: Tab to navigate controls, Space to play/pause, Arrow keys to seek. Use Tab to reach mute, fullscreen, and caption buttons.

Accessibility Features Demonstrated:
  • Keyboard navigation with visible focus indicators
  • Closed captions with high-contrast styling
  • Screen reader compatible controls
  • Customizable playback speed
  • ARIA labels and semantic markup

Keyboard navigation controls

Video Player Keyboard Controls

Key
Action
Tab
Navigate forward through video player controls
Shift + Tab
Navigate backward through video player controls
Spacebar
Play/pause video
Enter
Activate focused button (play, fullscreen, etc.)
Left Arrow
Seek backward 10 seconds
Right Arrow
Seek forward 10 seconds
Up Arrow
Increase volume
Down Arrow
Decrease volume
Escape
Exit fullscreen mode

Implementation example

Here's how to configure the Cloudinary Video Player with optimal accessibility settings:

✔️ Feedback sent!

Rate this page: