{"id":38193,"date":"2025-08-18T07:00:00","date_gmt":"2025-08-18T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=38193"},"modified":"2025-08-18T09:54:49","modified_gmt":"2025-08-18T16:54:49","slug":"player-settings-customize-accessibility","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility","title":{"rendered":"What Player Settings Should You Customize for Accessibility?"},"content":{"rendered":"\n<p>Many teams assume their video players are accessible by default. However, most don\u2019t meet <a target=\"_blank\" href=\"https:\/\/accessibleweb.com\/rating\/aa\/\" rel=\"noreferrer noopener\">Web Content Accessibility Guidelines<\/a> (WCAG) 2.1 AA or <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/blog\/european-accessibility-act\" rel=\"noreferrer noopener\">European Accessibility Act<\/a> (EAA) standards, especially when it comes to screen reader support, keyboard navigation, and flexible captions.<\/p>\n\n\n\n<p>With these regulations already in effect, reviewing and configuring player settings is now a compliance requirement for any platform delivering video to a broad audience.<\/p>\n\n\n\n<p>In this guide, we\u2019ll walk through the player settings that are most critical for accessibility, how to configure them, and how to test your changes to make sure they work for everyone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Customize Your Video Player for Accessibility<\/h2>\n\n\n\n<p>To make your videos accessible, you\u2019ll need to adjust a few key player settings, such as captions, keyboard controls, and screen reader support. We\u2019ll make those updates using <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_video_player\" rel=\"noreferrer noopener\">Cloudinary Video Player<\/a>, a lightweight, customizable HTML5 player built for optimized, accessible video playback across devices.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755204963\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-1.png\" alt=\"Cloudinary Video Player showing the video is on mute. The video is paused on a car driving a windy road between the mountainside on the right and a lake on the left.\"\/><figcaption class=\"wp-element-caption\">Cloudinary Video Player<\/figcaption><\/figure><\/div>\n\n\n<p>It supports adaptive streaming, branding controls, and full WCAG 2.1 AA compliance, making it compatible with screen readers, keyboard navigation, and other assistive tools.<\/p>\n\n\n\n<p>You can <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/video_player_how_to_embed\" rel=\"noreferrer noopener\">embed the player<\/a> via HTML or configure it with JavaScript. Either way, you&#8217;ll need a <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/users\/register_free\" rel=\"noreferrer noopener\">Cloudinary account<\/a> and at least one uploaded video. Each video gets a unique public ID, which is how the player knows what to load.<\/p>\n\n\n\n<p>Here\u2019s a quick example showing how to load a video into the player using JavaScript:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">const<\/span> player = cloudinary.videoPlayer(<span class=\"hljs-string\">'my-player'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">cloudName<\/span>: <span class=\"hljs-string\">'your-cloud-name'<\/span>\n\n});\n\nplayer.source(<span class=\"hljs-string\">'demo-video'<\/span>); <span class=\"hljs-comment\">\/\/ 'demo-video' is the public ID of the uploaded video<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>Note: To use cloudinary.videoPlayer, include the Cloudinary Video Player library via <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_video_player#option_2_include_the_video_player_directly_from_a_cdn_provider\">CDN<\/a> or <a href=\"https:\/\/www.npmjs.com\/package\/cloudinary-video-player\">NPM<\/a>. See the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_video_player#installation\">documentation for setup instructions<\/a>.<\/p>\n<\/div>\n\n\n<p>In the example above, <code>your-cloud-name<\/code> is your Cloudinary cloud name, <code>demo-video<\/code> is the public ID of the uploaded video, and <code>my-player<\/code> is the ID of the <code>&lt;video><\/code> element.<\/p>\n\n\n\n<p>If you prefer not to write code, you can use Cloudinary\u2019s <a target=\"_blank\" href=\"https:\/\/console.cloudinary.com\/pm\/video-player-studio\" rel=\"noreferrer noopener\">Video Player Studio<\/a>, a visual tool for configuring captions, subtitles, themes, and chapters. To access it, go to the <strong>Video<\/strong> section in your Cloudinary dashboard and click on <strong>Video Player Studio<\/strong> from the sidebar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755204966\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-2.png\" alt=\"The Cloudinary Video Player Studio with a red arrow pointing to the Video icon first, then the Video Player Studio second.\"\/><figcaption class=\"wp-element-caption\">Cloudinary Video Player Studio<\/figcaption><\/figure>\n\n\n\n<p>Now that you understand what the Cloudinary Video Player is and how to load a video, let\u2019s look at the specific settings you should customize to make your video player accessible, starting with captions and subtitles.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Captions and Subtitles<\/h2>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/cloudinary.com\/blog\/video-subtitle-translation-azure\" rel=\"noreferrer noopener\">Captions and subtitles<\/a> are essential to improve video accessibility. Captions support users who are deaf or hard of hearing, as well as anyone watching in a sound-off environment, which is common on mobile and social platforms. Subtitles, by contrast, translate speech when viewers don\u2019t understand the spoken language.<\/p>\n\n\n\n<p>According to <a target=\"_blank\" href=\"https:\/\/www.w3.org\/WAI\/WCAG21\/Understanding\/captions-prerecorded.html\" rel=\"noreferrer noopener\">WCAG 2.1<\/a>, all prerecorded video content must include captions that accurately reflect spoken dialogue and relevant sounds like music or speaker changes. Captions must also be customizable and available in multiple languages, where applicable.<\/p>\n\n\n\n<p>Cloudinary allows you to define <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/video_player_customization#subtitles_and_captions\" rel=\"noreferrer noopener\">captions using <\/a><a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/video_player_customization#subtitles_and_captions\" rel=\"noreferrer noopener\">textTracks<\/a><a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/video_player_customization#subtitles_and_captions\" rel=\"noreferrer noopener\">.<\/a> You can use either manually uploaded .vtt files or automatically generated .transcript files. Here\u2019s a basic example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\">player.source(<span class=\"hljs-string\">'marketing-video'<\/span>, {\n\n\u00a0 textTracks: {\n\n\u00a0 \u00a0 captions: {\n\n\u00a0 \u00a0 \u00a0 label: <span class=\"hljs-string\">'English (Captions)'<\/span>,\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-keyword\">default<\/span>: <span class=\"hljs-keyword\">true<\/span>,\n\n\u00a0 \u00a0 \u00a0 url: <span class=\"hljs-string\">'https:\/\/res.cloudinary.com\/demo\/raw\/upload\/marketing-video.en.vtt'<\/span>\n\n\u00a0 \u00a0 },\n\n\u00a0 \u00a0 subtitles: &#91;\n\n\u00a0 \u00a0 \u00a0 {\n\n\u00a0 \u00a0 \u00a0 \u00a0 label: <span class=\"hljs-string\">'Spanish'<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 language: <span class=\"hljs-string\">'es'<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 url: <span class=\"hljs-string\">'https:\/\/res.cloudinary.com\/demo\/raw\/upload\/marketing-video.es.vtt'<\/span>\n\n\u00a0 \u00a0 \u00a0 },\n\n\u00a0 \u00a0 \u00a0 {\n\n\u00a0 \u00a0 \u00a0 \u00a0 label: <span class=\"hljs-string\">'French'<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 language: <span class=\"hljs-string\">'fr'<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 url: <span class=\"hljs-string\">'https:\/\/res.cloudinary.com\/demo\/raw\/upload\/marketing-video.fr.vtt'<\/span>\n\n\u00a0 \u00a0 \u00a0 }\n\n\u00a0 \u00a0 ]\n\n\u00a0 }\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This setup makes sure that English captions load by default, users can toggle between Spanish and French subtitles in the player, and each track is properly labeled and accessible in the UI.<\/p>\n\n\n\n<p>You can also do this in the Player Studio by adding the language and its file:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755204966\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-3.png\" alt=\"The Captions &amp; Subtitles section with Spanish captions and French subtitles uploaded.\"\/><figcaption class=\"wp-element-caption\">Add and manage subtitles for multiple languages directly in the Player Studio interface<\/figcaption><\/figure>\n\n\n\n<p>If you want to automate transcript and subtitle creation, Cloudinary integrates add-ons like the <a href=\"https:\/\/cloudinary.com\/documentation\/google_ai_video_transcription_addon\" target=\"_blank\" rel=\"noreferrer noopener\">Google AI Video Transcription add-on<\/a> or the <a href=\"https:\/\/cloudinary.com\/documentation\/microsoft_azure_video_indexer_addon\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Azure Video Indexer add-on<\/a>. This allows you to generate and translate subtitles during upload using the <code>raw_convert<\/code> parameter:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>raw_convert: 'azure_video_indexer:vtt:en-US:es-ES'<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This would generate VTT subtitles in both English and Spanish and store them alongside your video asset.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Keyboard Navigation and Screen Reader Support<\/h2>\n\n\n\n<p>To be considered accessible under WCAG 2.1 AA, a video player must be fully operable without the use of a mouse.&nbsp;<\/p>\n\n\n\n<p>This includes being able to play, pause, adjust volume, toggle captions, and enter full screen mode using only a keyboard. Screen reader support is also critical, as elements must expose proper roles and labels so assistive technologies can interpret them accurately.<\/p>\n\n\n\n<p>In Cloudinary\u2019s Video Player, <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/guides\/video\/video-player-accessibility\" rel=\"noreferrer noopener\">keyboard and screen reader<\/a> support is already built in, but you should confirm the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All interactive controls (play\/pause, volume, fullscreen, etc.) are reachable via the <strong>Tab<\/strong> key.<\/li>\n\n\n\n<li>The player shows visible focus outlines when elements are selected via keyboard. You can use a screen reader (like <a href=\"https:\/\/www.nvaccess.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">NVDA<\/a>, <a href=\"https:\/\/www.freedomscientific.com\/products\/software\/jaws\/\" target=\"_blank\" rel=\"noreferrer noopener\">JAWS<\/a>, or <a href=\"https:\/\/www.apple.com\/voiceover\/info\/guide\/_1121.html\" target=\"_blank\" rel=\"noreferrer noopener\">VoiceOver<\/a>) to check if each control is announced correctly.<\/li>\n\n\n\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Accessibility\/ARIA\/Reference\/Roles\" target=\"_blank\" rel=\"noreferrer noopener\">ARIA<\/a> (Accessible Rich Internet Applications) roles and attributes are applied to all controls (e.g., buttons, sliders). You can verify this in <a href=\"https:\/\/developer.chrome.com\/docs\/devtools\" target=\"_blank\" rel=\"noreferrer noopener\">Chrome DevTools<\/a> by going to the <strong>Accessibility<\/strong> tab to inspect ARIA labels, roles, and focus order.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755204966\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-4.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Use Chrome DevTools to inspect ARIA roles, labels, and focus order to make sure screen reader compatibility<\/figcaption><\/figure>\n\n\n\n<p>In the screenshot above, the volume slider is selected, and DevTools shows its ARIA attributes: a slider role, its current value (100%), and a lot more. These details give screen reader users clear, real-time feedback as they interact with volume controls, just like sighted users would by looking at the UI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Color Contrast for Controls and Text<\/h2>\n\n\n\n<p>Poor contrast can make video controls unreadable for users with low vision, color blindness, or in bright environments. For example, if you set the icons as #CCCCCC on a white background #FFFFFF, you fail contrast checks and make controls nearly invisible, as shown in the image below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755204967\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-5.png\" alt=\"A still from the video with the play icon set to #CCCCCC and background set to #FFFFFF, which blend together and is difficult to differentiate\"\/><figcaption class=\"wp-element-caption\">Poor color contrast like this fails accessibility checks and makes controls hard to see for many users<\/figcaption><\/figure>\n\n\n\n<p>WCAG 2.1 AA <a target=\"_blank\" href=\"https:\/\/www.w3.org\/WAI\/WCAG21\/Understanding\/contrast-minimum\" rel=\"noreferrer noopener\">requires a minimum contrast ratio of 4.5:1 for normal text and 3:1 for large text<\/a> or UI components like buttons and sliders.<\/p>\n\n\n\n<p>Cloudinary\u2019s Video Player allows full control over the player\u2019s color scheme through the colors parameter in JavaScript or the data-cld-colors attribute in HTML.&nbsp;<\/p>\n\n\n\n<p>When customizing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Choose base, accent, and text colors that meet or exceed contrast ratios.<\/li>\n\n\n\n<li>Make sure text on buttons and labels remains legible on background colors.<\/li>\n\n\n\n<li>Avoid relying on color alone to convey meaning (e.g., red = error).<\/li>\n<\/ul>\n\n\n\n<p>Here is how to set it up with Cloudinary:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">const<\/span> player = cloudinary.videoPlayer(<span class=\"hljs-string\">'my-player'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">cloudName<\/span>: <span class=\"hljs-string\">'your-cloud-name'<\/span>,\n\n\u00a0 <span class=\"hljs-attr\">colors<\/span>: {\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">base<\/span>: <span class=\"hljs-string\">'#000000'<\/span>, \u00a0 \u00a0 <span class=\"hljs-comment\">\/\/ background of control bar<\/span>\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">accent<\/span>: <span class=\"hljs-string\">'#FFD700'<\/span>, \u00a0 <span class=\"hljs-comment\">\/\/ highlight color (e.g. volume, seek bar)<\/span>\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">text<\/span>: <span class=\"hljs-string\">'#FFFFFF'<\/span> \u00a0 \u00a0 \u00a0<span class=\"hljs-comment\">\/\/ icon and label color<\/span>\n\n\u00a0 }\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can do this via the Video Studio using the <strong>Player Appearance<\/strong> option.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755205004\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-6.png\" alt=\"Player Appearance with customizable Player theme. You can change the colors of your controls here.\"\/><figcaption class=\"wp-element-caption\">Customize control colors in the Studio to meet contrast standards across devices<\/figcaption><\/figure>\n\n\n\n<p>You can also apply these settings directly in HTML:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">video<\/span>\n\n\u00a0 <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"my-player\"<\/span>\n\n\u00a0 <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"cld-video-player cld-video-player-skin-light\"<\/span>\n\n\u00a0 <span class=\"hljs-attr\">data-cld-colors<\/span>=<span class=\"hljs-string\">'{ \"base\": \"#000000\", \"accent\": \"#FFD700\", \"text\": \"#FFFFFF\" }'<\/span>\n\n\u00a0 <span class=\"hljs-attr\">controls<\/span>\n\n\u00a0 <span class=\"hljs-attr\">data-cld-public-id<\/span>=<span class=\"hljs-string\">\"your-video-id\"<\/span>&gt;<\/span>\n\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">video<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>After customizing, run a contrast checker (e.g., <a href=\"https:\/\/webaim.org\/\">WebAIM<\/a>) or use Chrome DevTools via Lighthouse accessibility audit to flag any issues.<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">4. Chapters and Navigation Aids<\/h2>\n\n\n\n<p>Chapters significantly improve accessibility and usability for longer videos, especially for users with cognitive disabilities or those using screen readers. They allow users to jump directly to meaningful sections without dragging through the timeline blindly.<\/p>\n\n\n\n<p>In Cloudinary\u2019s Video Player, you can add chapters by uploading a VTT file named using the convention <code>&lt;video-public-id>-chapters.vtt<\/code> and reference it automatically by setting <code>chapters: true<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">const<\/span> player = cloudinary.videoPlayer(<span class=\"hljs-string\">'player'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">cloudName<\/span>: <span class=\"hljs-string\">'demo'<\/span>,\n\n});\n\nplayer.source(<span class=\"hljs-string\">'old_camera'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">chapters<\/span>: <span class=\"hljs-literal\">true<\/span>\n\n});\n\nAlternatively, specify the VTT file URL directly:\n\nplayer.source(<span class=\"hljs-string\">'elephants'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">chapters<\/span>: {\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">url<\/span>: <span class=\"hljs-string\">'https:\/\/res.cloudinary.com\/demo\/raw\/upload\/docs\/chapters_example.vtt'<\/span>\n\n\u00a0 }\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Your VTT file should follow standard WebVTT syntax:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css shcb-wrap-lines\"><span class=\"hljs-selector-tag\">WEBVTT<\/span>\n\n00<span class=\"hljs-selector-pseudo\">:00<\/span><span class=\"hljs-selector-pseudo\">:00.000<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; 00<span class=\"hljs-selector-pseudo\">:01<\/span><span class=\"hljs-selector-pseudo\">:00.000<\/span>\n\n<span class=\"hljs-selector-tag\">Introduction<\/span>\n\n00<span class=\"hljs-selector-pseudo\">:01<\/span><span class=\"hljs-selector-pseudo\">:00.001<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; 00<span class=\"hljs-selector-pseudo\">:02<\/span><span class=\"hljs-selector-pseudo\">:30.000<\/span>\n\n<span class=\"hljs-selector-tag\">Feature<\/span> <span class=\"hljs-selector-tag\">Walkthrough<\/span>\n\n00<span class=\"hljs-selector-pseudo\">:02<\/span><span class=\"hljs-selector-pseudo\">:30.001<\/span> <span class=\"hljs-selector-tag\">--<\/span>&gt; 00<span class=\"hljs-selector-pseudo\">:03<\/span><span class=\"hljs-selector-pseudo\">:45.000<\/span>\n\n<span class=\"hljs-selector-tag\">Conclusion<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>You can skip the VTT file and define chapters directly:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">player.source(<span class=\"hljs-string\">'demo-video'<\/span>, {\n\n\u00a0 <span class=\"hljs-attr\">chapters<\/span>: {\n\n\u00a0 \u00a0 <span class=\"hljs-number\">0<\/span>: <span class=\"hljs-string\">'Intro'<\/span>,\n\n\u00a0 \u00a0 <span class=\"hljs-number\">60<\/span>: <span class=\"hljs-string\">'Setup'<\/span>,\n\n\u00a0 \u00a0 <span class=\"hljs-number\">150<\/span>: <span class=\"hljs-string\">'Best Practices'<\/span>\n\n\u00a0 }\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>To show the chapter list in the UI, pass <code>chaptersButton: true<\/code> when initializing the player.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755205254\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-7.gif\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Chapter markers make it easier to navigate long videos<\/figcaption><\/figure>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>If you\u2019re importing the player as a module, don\u2019t forget to include the chapters module: `<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">5. Alternate Audio Tracks<\/h2>\n\n\n\n<p>Alternate audio tracks allow you to serve multiple versions of a video\u2019s audio, such as different languages or descriptive audio for visually impaired users. This is a core accessibility requirement, especially for educational, public, and international content.<\/p>\n\n\n\n<p>When implemented correctly, users can switch between audio tracks from within the Cloudinary Video Player interface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1755205254\/blog-What_Player_Settings_Should_You_Customize_for_Accessibility-8.png\" alt=\"Cloudinary Video Player with a red arrow pointing at the Audio Track icon, which show a popup with a checkmark next to Original. The other option is Instrumental. The video still shows someone hiking up a mountain.\"\/><figcaption class=\"wp-element-caption\">Allow users to switch between audio tracks<\/figcaption><\/figure>\n\n\n\n<p>Alternate audio is defined using Cloudinary\u2019s <code>l_audio<\/code> transformation in combination with the <code>fl_alternate<\/code> flag. Each audio track must be explicitly added as a separate layer, including the original audio, and delivered through a manifest (e.g., <code>m3u8<\/code>) compatible with adaptive streaming.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">https:<span class=\"hljs-comment\">\/\/res.cloudinary.com\/demo\/video\/upload\/<\/span>\n\nfl_alternate:lang_en;name_Original,<span class=\"hljs-attr\">l_audio<\/span>:outdoors\/\n\nfl_layer_apply\/\n\nfl_alternate:lang_en;name_Instrumental,<span class=\"hljs-attr\">l_audio<\/span>:docs:instrumental-short\/\n\nfl_layer_apply\/\n\nsp_auto\/outdoors.m3u8<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This configuration adds the original audio track <code>(outdoors)<\/code> as \u201cOriginal,\u201d adds a second audio track <code>(instrumental-short)<\/code> as \u201cInstrumental,\u201d and applies adaptive streaming with <code>sp_auto<\/code>.<\/p>\n\n\n\n<p>If both the manifest and player are properly set up, users will see a dropdown menu in the player, as shown above, to switch between tracks.<\/p>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>This must be configured manually via URL, since <code>fl_alternate<\/code> isn\u2019t supported in SDKs. Remember to include the original audio track, or the first added layer will become the default.<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>Making your video player accessible isn\u2019t just about ticking compliance boxes. It\u2019s about making sure every viewer, regardless of ability, can fully engage with your content. Whether it\u2019s screen reader support, subtitle flexibility, keyboard navigation, or visual contrast, the right player settings make a tangible difference.<\/p>\n\n\n\n<p>Cloudinary\u2019s Video Player gives you the tools to get this right, with customizable UI components, multilingual caption support, accessible navigation, and deep configuration through both code and UI.<\/p>\n\n\n\n<p><a target=\"_blank\" href=\"https:\/\/cloudinary.com\/users\/register_free\" rel=\"noreferrer noopener\">Sign up for Cloudinary<\/a> and start building video experiences that are accessible, flexible, and built for everyone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_video_player\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary Video Player Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/guides\/video\/video-player-accessibility\" target=\"_blank\" rel=\"noreferrer noopener\">The Handbook to Video Player Accessibility<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/video_player_accessibility\" target=\"_blank\" rel=\"noreferrer noopener\">Video Player Accessibility Documentation<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Many teams assume their video players are accessible by default. However, most don\u2019t meet Web Content Accessibility Guidelines (WCAG) 2.1 AA or European Accessibility Act (EAA) standards, especially when it comes to screen reader support, keyboard navigation, and flexible captions. With these regulations already in effect, reviewing and configuring player settings is now a compliance [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":38194,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[337,303,310],"class_list":["post-38193","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-accessibility","tag-video","tag-video-player"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>What Player Settings Should You Customize for Accessibility?<\/title>\n<meta name=\"description\" content=\"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Player Settings Should You Customize for Accessibility?\" \/>\n<meta property=\"og:description\" content=\"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-18T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-18T16:54:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"What Player Settings Should You Customize for Accessibility?\",\"datePublished\":\"2025-08-18T14:00:00+00:00\",\"dateModified\":\"2025-08-18T16:54:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\"},\"wordCount\":1388,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA\",\"keywords\":[\"Accessibility\",\"Video\",\"Video Player\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\",\"url\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\",\"name\":\"What Player Settings Should You Customize for Accessibility?\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA\",\"datePublished\":\"2025-08-18T14:00:00+00:00\",\"dateModified\":\"2025-08-18T16:54:49+00:00\",\"description\":\"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Player Settings Should You Customize for Accessibility?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What Player Settings Should You Customize for Accessibility?","description":"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility","og_locale":"en_US","og_type":"article","og_title":"What Player Settings Should You Customize for Accessibility?","og_description":"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.","og_url":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility","og_site_name":"Cloudinary Blog","article_published_time":"2025-08-18T14:00:00+00:00","article_modified_time":"2025-08-18T16:54:49+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"What Player Settings Should You Customize for Accessibility?","datePublished":"2025-08-18T14:00:00+00:00","dateModified":"2025-08-18T16:54:49+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility"},"wordCount":1388,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","keywords":["Accessibility","Video","Video Player"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility","url":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility","name":"What Player Settings Should You Customize for Accessibility?","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","datePublished":"2025-08-18T14:00:00+00:00","dateModified":"2025-08-18T16:54:49+00:00","description":"Poor contrast, missing captions, no keyboard support? Fix these with Cloudinary\u2019s player. This guide walks through every accessibility setting to check.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/player-settings-customize-accessibility#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What Player Settings Should You Customize for Accessibility?"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1754677112\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_\/Blog_What_Player_Settings_Should_You_Customize_for_Accessibility_.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=38193"}],"version-history":[{"count":3,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38193\/revisions"}],"predecessor-version":[{"id":38197,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38193\/revisions\/38197"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/38194"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=38193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=38193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=38193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}