<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"><channel><title>Disruptive Library Technology Jester &#187; section508</title> <atom:link href="http://dltj.org/tag/section508/feed/" rel="self" type="application/rss+xml" /><link>http://dltj.org</link> <description>We&#039;re Disrupted, We&#039;re Librarians, and We&#039;re Not Going to Take It Anymore</description> <lastBuildDate>Fri, 18 May 2012 15:43:10 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <cloud domain='dltj.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' /> <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/us/</creativeCommons:license> <item><title>Resource for Improving Higher Education Instruction</title><link>http://dltj.org/article/fame/</link> <comments>http://dltj.org/article/fame/#comments</comments> <pubDate>Sat, 03 Mar 2007 22:14:22 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Meta Category]]></category> <category><![CDATA[accessibility]]></category> <category><![CDATA[higher education]]></category> <category><![CDATA[section508]]></category><guid isPermaLink="false">http://dltj.org/2007/03/fame/</guid> <description><![CDATA[A few months back I referred to a project that used video to present information about accessibility needs in the classroom. That article was about how difficult it is to create markup for embedded video that is universally accessible and &#8230; <a href="http://dltj.org/article/fame/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2007/03/fame/"></abbr><p>A few months back I referred to a project that used video to present information about accessibility needs in the classroom.  That article was about <a href="http://dltj.org/2006/09/standards-compliant-web-video/">how difficult it is to create markup for embedded video that is universally accessible and valid HTML</a>.  Late last month the larger project that used that work was released.  Called the <a href="http://www.oln.org/ILT/ada/Fame/" title="FAME (Faculty &amp; Administrator Modules in Higher Education) Homepage">Faculty &#038; Administrator Modules in Higher Education</a>, or FAME, it is a professional development tool for use in higher education with information on how college faculty, administrators, disability service providers, and students can work individually and collaboratively to improve the accommodations, teaching-learning process, and overall campus environment for students with disabilities.  The content on the website is broken up into five modules:</p><ul><li><a href="http://fame.oln.org//rr/f1_1_1.html" title="FAME: Introductory Video &lt; Introduction &lt; Rights &amp; Responsibilities">Rights and responsibilities</a> of faculty, students, and disability service providers in the accommodations and instructional process;</li><li><a href="http://fame.oln.org/udl/f2_11_145.html" title="FAME: Introductory Video &lt; Introduction &lt; Universal Design for Learning">Universal Design for Learning</a> (UDL) approach to instruction;</li><li><a href="http://fame.oln.org/web/f3_13_150.html" title="FAME: Introductory Video &lt; Introduction &lt; Web Accessibility &amp; Assistive Technology">Web accessibility</a> and assistive technology;</li><li><a href="http://fame.oln.org/cw/f4_14_151.html" title="FAME: Introductory Video &lt; Introduction &lt; College Writing">College writing</a> challenges and effective teaching practices; and</li><li><a href="http://fame.oln.org/ca/f5_15_152.html" title="FAME: Introductory Video &lt; Introduction &lt; Climate Assessment">Assessment of the campus climate</a> towards students with disabilities.</li></ul><p>Each module contains a video introduction, practitioner-oriented commentary, interactive case studies, and references to other material.  One can even <a href="http://fame.oln.org/help_5.html" title="FAME Help: Instructions for Download">download the FAME content</a> to be personalized and mounted on an institution&#8217;s own site.  (OhioLINK has offered to host the streaming video content for FAME even if an institution downloads and personalizes the content, and we can also make the video files available to institutions in Quicktime, Windows Media, and Real Media formats to mount on their own servers as well.)</p><p>I invite you to take a look at the site.  It was a pleasure to work with the project team to bring the work of the researchers, writers, editors and technologists to bring the project to this stage.  The FAME Project came about through training grant awarded to The Ohio State University from the Office of Post-Secondary Education, U.S. Department of Education (P333A020033-03).  The FAME Project Director was <a href="http://replay.web.archive.org/20080705040726/http://nisonger.osu.edu/bios/izzo.htm" title="The Nisonger Center - Dr. Margo Izzo Bio">Dr. Margo Izzo</a> at The Ohio State University.<p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/rr/f1_1_1.html to http://fame.oln.org//rr/f1_1_1.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/udl/f2_11_145.html to http://fame.oln.org/udl/f2_11_145.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/web/f3_13_150.html to http://fame.oln.org/web/f3_13_150.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/cw/f4_14_151.html to http://fame.oln.org/cw/f4_14_151.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/ca/f5_15_152.html to http://fame.oln.org/ca/f5_15_152.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://www.oln.org/ILT/ada/Fame/help_5.html to http://fame.oln.org/help_5.html on December 31st, 2010.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://nisonger.osu.edu/izzo.htm to http://nisonger.osu.edu/bios/izzo.htm on January 20th, 2011.</p><p style="padding:0;margin:0;font-style:italic;">The text was modified to update a link from http://nisonger.osu.edu/bios/izzo.htm to http://replay.web.archive.org/20080705040726/http://nisonger.osu.edu/bios/izzo.htm on May 17th, 2011.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/fame/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Update to &#8216;Embedded Web Video in a Standards-Compliant, Accessible, and Successful Way&#8217;</title><link>http://dltj.org/article/update-to-embedded-web-video/</link> <comments>http://dltj.org/article/update-to-embedded-web-video/#comments</comments> <pubDate>Wed, 21 Feb 2007 20:41:09 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[accessibility]]></category> <category><![CDATA[digital libraries]]></category> <category><![CDATA[perl]]></category> <category><![CDATA[section508]]></category> <category><![CDATA[video]]></category> <category><![CDATA[web standards]]></category><guid isPermaLink="false">http://dltj.org/2007/02/update-to-embedded-web-video/</guid> <description><![CDATA[With the release of Microsoft&#8217;s Windows Media Player version 11, the Microsoft Media Server (MMS) protocol is officially no longer supported. (Except, of course, for the confusing/amusing footnote on that page that says &#8216;mms://&#8217; URIs are &#8220;highly recommended&#8221; as a &#8230; <a href="http://dltj.org/article/update-to-embedded-web-video/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2007/02/update-to-embedded-web-video/"></abbr><p>With the release of Microsoft&#8217;s <a href="http://www.microsoft.com/windows/windowsmedia/player/11/default.aspx" title="Windows Media Player 11">Windows Media Player version 11</a>, the Microsoft Media Server (MMS) protocol is <a href="http://www.microsoft.com/windows/windowsmedia/licensing/netprokit.aspx#WindowsMediaNetworkingProtocolsCompatibility" title="Windows Media Porting Kits: Other Windows Media Technologies">officially no longer supported</a>.  (Except, of course, for the confusing/amusing footnote on that page that says &#8216;mms://&#8217; URIs are &#8220;highly recommended&#8221; as a <a href="http://msdn2.microsoft.com/en-gb/library/aa390673.aspx" title="Protocol Rollover">protocol rollover URL</a> &mdash; only Microsoft can at the same time make something deprecated and highly recommended.)  As <span class="removed_link" title="http://blog.ryaneby.com/archives/windows-media-player-11-and-mms/">Ryan Eby noted earlier this year</span>, those generating ASX files for Windows Media Player need to adjust their scripts.</p><p>Last year I published an entry called <a href="http://dltj.org/2006/09/standards-compliant-web-video/">Embedded Web Video in a Standards-Compliant, Accessible, and Successful Way</a> on how to embed (without using the non-standard &lt;EMBED&gt; tag) video on an HTML page.  It has been one of the most widely read articles on <i>DLTJ.org</i>, and so I wanted to publish an updated version of the script from that article to take into account this new wrinkle from Microsoft.  The change is at line #41 below:</p><div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl -w</span>
<span style="color: #666666; font-style: italic;"># Copyright (C) 2006-2007 OhioLINK</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># This file is part of the OhioLINK Digital Resource Commons (DRC) Project.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># The OhioLINK DRC is free software; you can redistribute it and/or</span>
<span style="color: #666666; font-style: italic;"># modify it under the terms of the Affero General Public License as</span>
<span style="color: #666666; font-style: italic;"># published by Affero, Inc. -- either version 1 of the License, or</span>
<span style="color: #666666; font-style: italic;"># (at your option) any later version.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># The OhioLINK DRC Project is distributed in the hope that it will be</span>
<span style="color: #666666; font-style: italic;"># useful, but WITHOUT ANY WARRANTY -- without even the implied warranty</span>
<span style="color: #666666; font-style: italic;"># of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<span style="color: #666666; font-style: italic;"># Affero General Public License for more details.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># You should have received a copy of the Affero General Public</span>
<span style="color: #666666; font-style: italic;"># License in the LICENSE.txt file that comes with the DRC project;</span>
<span style="color: #666666; font-style: italic;"># if not, write to DRC Development Team, OhioLINK, 2455 North Star Rd,</span>
<span style="color: #666666; font-style: italic;"># Suite 300, Columbus, OH 43221, USA.</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>PATH_INFO<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://no-path-info-given/<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>PATH_INFO<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">q</span><span style="color: #666666; font-style: italic;">#^/+(.*?)/(.*)$#;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Quicktime/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://video.ohiolink.edu/blah/Quicktime/$id<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Real/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://video.ohiolink.edu:8080/ramgen/blah/Real/$id<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Windows/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$winFile</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$id</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">q</span><span style="color: #666666; font-style: italic;">#^(.*?)/(.*)$#;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/asx/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #0000ff;">$winFile</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/\\..*$//</span><span style="color: #339933;">;</span>
      <span style="color: #000066;">print</span> <span style="color: #339933;">&gt;&gt;</span> <span style="color: #ff0000;">&quot;EoMarkup&quot;</span><span style="color: #339933;">;</span>
Content<span style="color: #339933;">-</span>type<span style="color: #339933;">:</span> video<span style="color: #339933;">/</span>x<span style="color: #339933;">-</span>ms<span style="color: #339933;">-</span>asf
&nbsp;
<span style="color: #339933;">&lt;</span>asx version<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;3.0&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #009999;">&lt;copyright&gt;</span><span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #cc66cc;">2005</span> <span style="color: #339933;">-</span> xxx<span style="color: #339933;">&lt;/</span>copyright<span style="color: #339933;">&gt;</span>
<span style="color: #009999;">&lt;entry&gt;</span>
<span style="color: #339933;">&lt;</span>ref href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;mms://video.ohiolink.edu/blah/Windows/$winFile.wmv?SAMI=http://rave.ohiolink.edu/dmc/blah/windows/smi/$winFile.smi&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>ref href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;http://video.ohiolink.edu/blah/Windows/$winFile.wmv?SAMI=http://rave.ohiolink.edu/dmc/blah/windows/smi/$winFile.smi&quot;</span><span style="color: #339933;">/&gt;</span>
<span style="color: #009999;">&lt;copyright&gt;</span><span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #cc66cc;">2005</span> <span style="color: #339933;">-</span> xxx<span style="color: #339933;">&lt;/</span>copyright<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>ref<span style="color: #339933;">&gt;&lt;/</span>entry<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>asx<span style="color: #339933;">&gt;</span>
EoMarkup
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/wmv/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: mms://video.ohiolink.edu/blah/Windows/$winFile<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/smi/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">use</span> LWP<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$ua</span> <span style="color: #339933;">=</span> LWP<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">agent</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;$0-lwp/0.1 &quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">agent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$req</span> <span style="color: #339933;">=</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Request</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span>GET <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;http://video.ohiolink.edu:8080/blah/Windows/$winFile&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #666666; font-style: italic;"># send request</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">request</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #666666; font-style: italic;"># check the outcome</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">is_success</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Content-type: application/smil<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">decoded_content</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://error-from-remote-server/$winType/$winFile/&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">code</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">message</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://invalid-Windows-format-given/$winType/$winFile<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://invalid-format-given/$format/$id<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n<span style="color: #000099; font-weight: bold;">\\</span>r<span style="color: #000099; font-weight: bold;">\\</span>n&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>Thanks to Neil Bennett at the University of Southern Maine for contacting OhioLINK about the problem, providing some very helpful diagnostics, and pointing us to the URL to the protocol table mentioned above.  It is also worth noting that the A List Apart website posted a new article about <a href="http://alistapart.com/articles/flashembedcagematch" title="A List Apart: Articles: Flash Embedding Cage Match">sane ways of embedding Flash content</a> that builds upon the same work in the original &#8216;Embedded Web Video&#8230;&#8217; article.  It might be time to update some of the techniques used in the original article, but that&#8217;ll need to wait for another time.<p style="padding:0;margin:0;font-style:italic;" class="removed_link">The text was modified to remove a link to http://blog.ryaneby.com/archives/windows-media-player-11-and-mms/ on January 19th, 2011.</p>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/update-to-embedded-web-video/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Embedded Web Video in a Standards-Compliant, Accessible, and Successful Way</title><link>http://dltj.org/article/standards-compliant-web-video/</link> <comments>http://dltj.org/article/standards-compliant-web-video/#comments</comments> <pubDate>Tue, 26 Sep 2006 00:59:14 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[Raw Technology]]></category> <category><![CDATA[accessibility]]></category> <category><![CDATA[section508]]></category> <category><![CDATA[video]]></category> <category><![CDATA[web standards]]></category><guid isPermaLink="false">http://dltj.org/2006/09/standards-compliant-web-video/</guid> <description><![CDATA[The word &#8220;Successful&#8221; in the title, when juxtaposed with &#8220;Standards-Compliant&#8221; and &#8220;Accessible,&#8221; should be big, bold and flashing (except that the flashing style would then go against web accessibility best practice). The goal is to embed a video clip into &#8230; <a href="http://dltj.org/article/standards-compliant-web-video/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2006/09/standards-compliant-web-video/"></abbr><p>The word &#8220;Successful&#8221; in the title, when juxtaposed with &#8220;Standards-Compliant&#8221; and &#8220;Accessible,&#8221; should be big, bold and flashing (except that the flashing style would then go against web accessibility best practice).  The goal is to embed a video clip into a web page that validates as &#8220;XHTML4.01 Transitional&#8221;, includes a Closed Captioning text track to be displayed in the web page, and could be viewed in one of three flavors:  Windows Media, QuickTime, and Real.  And the content being presented is about using accessible technologies in the classroom, so it had to be &#8220;right.&#8221;  This task was much harder than I thought, and I&#8217;ll offer much harder than it should have been.  Piecing together sources too numerous to mention, I managed to make it happen &#8230; with just a few caveats.  Here, documented for all time, or at least until dltj.org goes away or the next major browser/streaming-client revision (which ever comes first) is how it can be done.</p><p><h2>The Content</h2><br />I hope someday soon to actually post a link to this content online where you can see at least the public face of this solution at play.  The content is for a series of web-based modules for faculty and administrators to help improve the quality of education for students with disabilities.  It is top-notch stuff, and it has been a real honor to work with the team that put it together.  For my piece of it, though, they gave me a set of directories, broken out by media type, with this content:</p><dl><dt>Windows/</dt><dd>.wmv (the video) and .smi (the closed caption text track)</dd><dt>Real/</dt><dd>.rm (the video), .rt (the closed caption text track) and .smi (the container that pulls the first two together)</dd><dt>Quicktime/</dt><dd>.mov (the video)</dd></dl><p>Now right out of the gate we&#8217;re fudging things a little bit.  For whatever reason the team developing the content decided to punt when it came to the text track in Quicktime.  I don&#8217;t know if there was an insurmountable barrier or some other reason, but the practical upshot is that the Quicktime version of the video includes the text track an &#8220;open caption&#8221; encoded right into the video stream.  That makes Quicktime, from my perspective, very easy to deal with.</p><p>Those with a keen eye will notice that both the Windows Media and the Real Media version have  a .smi file.  This is true, but they are not identical.  Windows media wants to use a .asx file as its container object and only uses the .smi for the text stream.  The Real Media version has the text stream in .rt files.  Could these be combined?  Perhaps, but I&#8217;ve got real-world problems to solve and this is what I was given.  In any case, I don&#8217;t think it makes the end result any easier or harder than it would be otherwise.</p><p><h2>Serving Up the Content</h2><br />We use a Helix Streaming Media server from Real Networks, Inc., as our content server, but that isn&#8217;t the really interesting part of this quest.  Another requirement, was that the URLs to these various media files needed to be persistent, <em>is</em> an interesting problem.  The HTML that will include the URLs could be copied and distributed to hundreds if not thousands of sites eventually, so updating the URLs in web pages because a machine name changed or we decide to use a Darwin Streaming Server rather than a Helix Streaming Server for Quicktime would be impossible to get done right.  OhioLINK (my employer), being a content provider for member libraries, created a persistent URL service years ago for its content called &#8220;RAVE&#8221; (or <b><u>R</u></b>andom <b><u>A</u></b>ccess to <b><u>V</u></b>irtually <b><u>E</u></b>verything), so it made sense to have the URLs to the media pieces be &#8220;RAVE URLs&#8221;.  RAVE URLs are handled by PERL scripts running on an Apache virtual host called &#8220;rave.ohiolink.edu&#8221;.  These PERL scripts read the parameters of the request and issue an HTTP 302 (&#8220;Moved Temporarily&#8221;) redirect to the real location of the content.  In doing so, we only need to change the address of the content in one place &#8212; the RAVE script &#8212; when the location moves (rather than in the hundreds of web pages or bookmarks or what-have-you).</p><p>For the purposes of this project, these RAVE URLs were defined as this (the http protocol prefix is omitted so over-anxious RSS readers will not attempt to turn them into hyperlinks; &#8220;blah&#8221; is a placeholder for the project name; and [id] represents the identifier for the video segment):</p><dl style="margin-left: 3em"><dt>rave.ohiolink.edu/dmc/blah/quicktime/[id]</dt><dd>Redirects to the location of the Quicktime file (a hinted .mov file, so it starts playing in the browser right away)</dd><dt>rave.ohiolink.edu/dmc/blah/real/[id]</dt><dd>Redirects to the location of the .smi container file via the mms protocol through the Helix streaming server</dd><dt>rave.ohiolink.edu/dmc/blah/windows/wmv/[id]</dt><dd>Redirects to the location of the wmv video file via the mms protocol through the Helix streaming server</dd><dt>rave.ohiolink.edu/dmc/blah/windows/smi/[id]</dt><dd>Pulls the .smi file off of the streaming server and sends it back to the browser with the appropriate MIME type</dd><dt>rave.ohiolink.edu/dmc/blah/windows/asx/[id]</dt><dd>Dynamically creates a .asx container that pulls together the <code>windows/smi</code> and the <code>windows/wmv</code> files</dd></dl><p>Here are the first of the tricky bits.  First, it seems like Windows Media Player can&#8217;t cope with a 302 redirect message in response to its request for a .smi file.  &#8220;Can&#8217;t cope&#8221; can be restated as &#8220;ignores&#8221;; it doesn&#8217;t throw an error, it just plays the file as if there was no closed captioning text.  To get around this, the RAVE script has a bit of PERL where it asks like a web client to pull the .smi file off of the video server and send it back out to the media player.</p><div style="padding 1em; border: 1px solid red; margin: 1em; background: yellow; color: black;">Note &mdash; the Perl script included below was updated in February 2007 to include <a href="http://dltj.org/2007/02/update-to-embedded-web-video/">a fix for the deprecation of the MMS protocol</a> in Windows Media Player.</div><p>Second &#8212; again for those with eagle eyes &#8212; is the dynamic generation of an .asx file.  As it turns out, one can relate a .smi text-track file with a .wmv video file by including it as a SAMI parameter on the URL.  By far the best practice for doing this seems to be to relate the .smi and the .wmv files in a .asx container file.  So we create one on-the-fly.  The PERL code looks like this:</p><div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl -w</span>
<span style="color: #666666; font-style: italic;"># Copyright (C) 2006 OhioLINK</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># This file is part of the OhioLINK Digital Resource Commons (DRC) Project.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># The OhioLINK DRC is free software; you can redistribute it and/or</span>
<span style="color: #666666; font-style: italic;"># modify it under the terms of the Affero General Public License as</span>
<span style="color: #666666; font-style: italic;"># published by Affero, Inc. -- either version 1 of the License, or</span>
<span style="color: #666666; font-style: italic;"># (at your option) any later version.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># The OhioLINK DRC Project is distributed in the hope that it will be</span>
<span style="color: #666666; font-style: italic;"># useful, but WITHOUT ANY WARRANTY -- without even the implied warranty</span>
<span style="color: #666666; font-style: italic;"># of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<span style="color: #666666; font-style: italic;"># Affero General Public License for more details.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># You should have received a copy of the Affero General Public</span>
<span style="color: #666666; font-style: italic;"># License in the LICENSE.txt file that comes with the DRC project;</span>
<span style="color: #666666; font-style: italic;"># if not, write to DRC Development Team, OhioLINK, 2455 North Star Rd, </span>
<span style="color: #666666; font-style: italic;"># Suite 300, Columbus, OH 43221, USA.</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>PATH_INFO<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://no-path-info-given/<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$id</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ENV</span><span style="color: #009900;">&#123;</span>PATH_INFO<span style="color: #009900;">&#125;</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">q</span><span style="color: #666666; font-style: italic;">#^/+(.*?)/(.*)$#;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Quicktime/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://video.ohiolink.edu/blah/Quicktime/$id<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Real/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://video.ohiolink.edu:8080/ramgen/blah/Real/$id<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span> 
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$format</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/Windows/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span><span style="color: #339933;">,</span><span style="color: #0000ff;">$winFile</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$id</span> <span style="color: #339933;">=~</span> <span style="color: #000066;">q</span><span style="color: #666666; font-style: italic;">#^(.*?)/(.*)$#;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/asx/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #0000ff;">$winFile</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">s/\..*$//</span><span style="color: #339933;">;</span>
      <span style="color: #000066;">print</span> <span style="color: #339933;">&gt;&gt;</span> <span style="color: #ff0000;">&quot;EoMarkup&quot;</span><span style="color: #339933;">;</span>
Content<span style="color: #339933;">-</span>type<span style="color: #339933;">:</span> video<span style="color: #339933;">/</span>x<span style="color: #339933;">-</span>ms<span style="color: #339933;">-</span>asf
&nbsp;
<span style="color: #339933;">&lt;</span>asx version<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;3.0&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #009999;">&lt;copyright&gt;</span><span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #cc66cc;">2005</span> <span style="color: #339933;">-</span> xxx<span style="color: #339933;">&lt;/</span>copyright<span style="color: #339933;">&gt;</span>
<span style="color: #009999;">&lt;entry&gt;</span>
<span style="color: #339933;">&lt;</span>ref href<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;mms://video.ohiolink.edu/blah/Windows/$winFile.wmv?SAMI=http://rave.ohiolink.edu/dmc/blah/windows/smi/$winFile.smi&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #009999;">&lt;copyright&gt;</span><span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span> <span style="color: #cc66cc;">2005</span> <span style="color: #339933;">-</span> xxx<span style="color: #339933;">&lt;/</span>copyright<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>ref<span style="color: #339933;">&gt;&lt;/</span>entry<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>asx<span style="color: #339933;">&gt;</span> 
EoMarkup
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/wmv/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: mms://video.ohiolink.edu/blah/Windows/$winFile<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elsif</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$winType</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/smi/i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000000; font-weight: bold;">use</span> LWP<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$ua</span> <span style="color: #339933;">=</span> LWP<span style="color: #339933;">::</span><span style="color: #006600;">UserAgent</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">agent</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;$0-lwp/0.1 &quot;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">agent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #0000ff;">$req</span> <span style="color: #339933;">=</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Request</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span>GET <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;http://video.ohiolink.edu:8080/blah/Windows/$winFile&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #666666; font-style: italic;"># send request</span>
      <span style="color: #0000ff;">$res</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ua</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">request</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$req</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #666666; font-style: italic;"># check the outcome</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">is_success</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Content-type: application/smil<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">print</span> <span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">decoded_content</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://error-from-remote-server/$winType/$winFile/&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">code</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">$res</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">message</span><span style="color: #339933;">.</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://invalid-Windows-format-given/$winType/$winFile<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Location: http://invalid-format-given/$format/$id<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div><p>The first part of the script parses the PATH_INFO variable &#8212; everything left over from the <i>blah</i> script name &#8212; and if what is requested is the Real Media or the Quicktime version of the video it sends the redirect back to the client (in the form of the &#8220;Location:&#8221; header with Apache HTTP daemon handling the 302 response code).  If what is requested is the Windows variety, it further parses the PATH_INFO piece for the file type and acts according to that:  for wmv, it redirects; for asx, it generates the .asx file; and for .smi, it pulls the content off the video server and returns it to the client.</p><p><h2>The Markup</h2><br />So now that we can serve up the video content with persistent URLs, we need to tackle the HTML markup.  As a general rule, we can&#8217;t use the <a href="http://www.webstandards.org/learn/articles/askw3c/may2005/" title="Adding Multimedia in Web Documents (part 2) - The Web Standards Project">popular yet non-standard <code>&lt;embed&gt;</code> tag</a>; since it is not part of any formal specification, validation will always fail.  As a consequence, use in future browsers is less assured.  So we need to use <code>&lt;object&gt;</code> &#8212; and unfortunately due to varied, if not outright broken implementations of the <code>&lt;object&gt;</code> tag, we need to be a little tricky in how we code it.  Other tricks are in play here as well &#8212; check the list of &#8220;Resources Consulted&#8221; below for more information.</p><p>Also note that many of the recommendations out there start off with something like &#8220;if you have media to show, <em>don&#8217;t</em> embed it into your web page; but if you must, here is one way to do it.&#8221;  The reason for this is pretty simple, if not obvious after a little thought:  folks using alternate browsing/computing techniques (e.g. keyboard only for limited mobility, auditory only for sight impaired, visual only for the hearing impaired, etc.) lose much of their ability to control the flow of information because it is tied up in the functionally-limited browser rather than the native media player.  These same recommendations go on to say that if you do embed the media into the web page, provide a link for the user to access it using the native media player.</p><p>So based on the URLs to the media objects described above, this is what the HTML markup looks like:</p><p><h3>Quicktime</h3><br /><br clear="all" /></p><div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;object classid=&quot;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&quot; codebase=&quot;http://www.apple.com/qtactivex/qtplugin.cab&quot; width=&quot;320&quot; height=&quot;380&quot;&gt;
  &lt;param name=&quot;src&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/quicktime/[id].mov&quot; /&gt;
  &lt;param name=&quot;controller&quot; value=&quot;true&quot; /&gt;
  &lt;param name=&quot;autoplay&quot; value=&quot;true&quot; /&gt;
  &lt;!--[if !IE]&gt;--&gt;
    &lt;/object&gt;&lt;object type=&quot;video/quicktime&quot; data=&quot;http://rave.ohiolink.edu/dmc/blah/quicktime/[id].mov&quot; width=&quot;320&quot; height=&quot;380&quot;&gt;
     &lt;param name=&quot;autoplay&quot; value=&quot;true&quot; /&gt;
     &lt;param name=&quot;controller&quot; value=&quot;true&quot; /&gt;
    &lt;/object&gt;
   &lt;!--&lt;![endif]--&gt;
&nbsp;
&amp;lt;br /&amp;gt;
&lt;a href=&quot;http://rave.ohiolink.edu/dmc/blah/quicktime/[id].mov&quot; title=&quot;View in Native Player&quot;&gt;View Video with External Player&lt;/a&gt;</pre></div></div><p><h3>Windows Media</h3><br /><br clear="all" /></p><div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;object classid=&quot;clsid:6bf52a52-394a-11d3-b153-00c04f79faa6&quot; type=&quot;application/x-oleobject&quot; width=&quot;320&quot; height=&quot;304&quot; id=&quot;Player1&quot;&gt;
  &lt;param name=&quot;url&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/windows/asx/[id].asx&quot; /&gt;
  &lt;param name=&quot;src&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/windows/asx/[id].asx&quot; /&gt;
  &lt;param name=&quot;autostart&quot; value=&quot;true&quot; /&gt;
  &lt;param name=&quot;showcontrols&quot; value=&quot;true&quot; /&gt;
  &lt;param name=&quot;uimode&quot; value=&quot;mini&quot; /&gt;
  &lt;param name=&quot;captioningID&quot; value=&quot;CapText&quot; /&gt;
  &lt;param name=&quot;SAMIFileName&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/windows/smi/scott.smi&quot; /&gt;
    &lt;!--[if !IE]&gt;--&gt;
     &lt;/object&gt;&lt;object type=&quot;video/x-ms-wmv&quot; data=&quot;http://rave.ohiolink.edu/dmc/blah/windows/asx/[id].asx&quot; width=&quot;320&quot; height=&quot;304&quot; id=&quot;Player2&quot;&gt;
     &lt;param name=&quot;src&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/windows/asx/[id].asx&quot; /&gt;
     &lt;param name=&quot;autostart&quot; value=&quot;true&quot; /&gt;
     &lt;param name=&quot;showcontrols&quot; value=&quot;true&quot; /&gt;
     &lt;param name=&quot;uimode&quot; value=&quot;mini&quot; /&gt;
     &lt;param name=&quot;captioningID&quot; value=&quot;CapText&quot; /&gt;
     &lt;param name=&quot;SAMIFileName&quot; value=&quot;http://rave.ohiolink.edu/dmc/blah/Windows/smi/[id].smi&quot; /&gt;
    &lt;/object&gt;
   &lt;!--!&lt;[endif]--&gt;
&nbsp;
&amp;lt;br /&amp;gt;
&lt;a href=&quot;http://rave.ohiolink.edu/dmc/blah/windows/asx/[id].asx&quot; title=&quot;View in Native Player&quot;&gt;View Video with External Player (including captions)&lt;/a&gt;</pre></div></div><p><h3>Real Media</h3><br />One last caveat.  As if the shenanigans above weren&#8217;t bad enough, apparently as part of a court settlement against Microsoft a number of years ago, there was an injunction placed against the creator of Internet Explorer that prevented that browser from automatically launching content embedded in a web page.  For whatever reason (I didn&#8217;t have time to investigate <em>why</em> this happened), it only impacts Real Media content.  Somehow, though, it is okay for the browser to start it if the action is called from an external piece of JavaScript.  Go figure.  You can read more about it at Real Media&#8217;s support site for <a href="http://www.realnetworks.com/resources/howto/embedded/iechanges/index.html" title="">Web Page Embedding &gt; Internet Explorer Changes</a>.  In actuality, though, it makes the Real Media part of the equation pretty easy:</p><div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;
  AC_RunRealContent( 
	&quot;id&quot;, &quot;player&quot;,  
	&quot;width&quot;, &quot;320&quot;,  
	&quot;height&quot;, &quot;280&quot;,  
	&quot;CONTROLS&quot;, &quot;imagewindow&quot;,  
	&quot;CONSOLE&quot;, &quot;radio&quot;,  
	&quot;AUTOSTART&quot;, &quot;TRUE&quot;,  
	&quot;type&quot;, &quot;audio/x-pn-realaudio-plugin&quot;,  
	&quot;SRC&quot;, &quot;http://rave.ohiolink.edu/dmc/blah/real/[id].smi&quot;
  );
  window.document.write('&amp;lt;br /&amp;gt;');
  AC_RunRealContent( 
	&quot;id&quot;, &quot;controls&quot;,  
	&quot;width&quot;, &quot;320&quot;,  
	&quot;height&quot;, &quot;36&quot;,  
	&quot;CONTROLS&quot;, &quot;ControlPanel&quot;,  
	&quot;CONSOLE&quot;, &quot;radio&quot;, 
	&quot;type&quot;, &quot;audio/x-pn-realaudio-plugin&quot;,  
	&quot;SRC&quot;, &quot;http://rave.ohiolink.edu/dmc/blah/real/[id].smi&quot;
  );
&lt;/script&gt;
&amp;lt;br /&amp;gt;
&lt;a href=&quot;http://rave.ohiolink.edu/dmc/fame/Real/scott.smi&quot; title=&quot;View with Native Player&quot;&gt;View Video with External Player (including captions)&lt;/a&gt;</pre></div></div><p><h2>Conclusion</h2></p><ol><li>It seems to work for me and the machines I test with; your mileage may vary.</li><li>If you know of a better way to do it, please let me know!</li></ol><p><h2>Resources Consulted</h2><br />Here is a short list of the most helpful resources used to accomplish this feat:</p><ul><li>&#8220;<a href="http://alistapart.com/articles/byebyeembed" title="A List Apart: Articles: Bye Bye Embed">Bye Bye Embed</a>&#8221; by Elizabeth Castro on A List Apart</li><li>&#8220;<a href="http://www.webaim.org/techniques/captions/" title="WebAIM: Web Captioning Overview">Web Captioning</a>&#8221; in the Web Accessibility In Mind project</li></ul>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/standards-compliant-web-video/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Fedora Disseminators to Enable Accessible Repository Content</title><link>http://dltj.org/article/fedora-disseminators-for-accessibility/</link> <comments>http://dltj.org/article/fedora-disseminators-for-accessibility/#comments</comments> <pubDate>Sat, 06 May 2006 03:04:19 +0000</pubDate> <dc:creator>Peter Murray</dc:creator> <category><![CDATA[DRC]]></category> <category><![CDATA[Fedora]]></category> <category><![CDATA[asset actions]]></category> <category><![CDATA[section508]]></category><guid isPermaLink="false">http://dltj.org/2006/05/fedora-disseminators-for-accessibility/</guid> <description><![CDATA[Calling all accessibility technology experts! What follows is a line of thinking about using characteristics of the FEDORA digital object repository to enable access to content through non-graphical interfaces. Thanks to Linda Newman from the University of Cincinnati and others &#8230; <a href="http://dltj.org/article/fedora-disseminators-for-accessibility/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<abbr class="unapi-id ignore noPrint" title="http://dltj.org/2006/05/fedora-disseminators-for-accessibility/"></abbr><p>Calling all accessibility technology experts!  What follows is a line of thinking about using characteristics of the <a href="http://www.fedora.info/" title="Fedora">FEDORA digital object repository</a> to enable access to content through non-graphical interfaces.  Thanks to Linda Newman from the University of Cincinnati and others on the Friday morning DRC Developers conference call for triggering this line of thinking.</p><p>In a recent post defining <a href="http://dltj.org/2006/05/fedora-disseminators/">universal disseminators for every object in our repository</a> (if the last dozen words didn&#8217;t make sense, please read the linked article and come back), I hinted at having an auditory derivative of each object, at least at the preview level.  During today&#8217;s conference call, Linda asked if such a disseminator could be used to offer different access points for non-GUI users.  Well, why not?  Let&#8217;s look back at the &#8220;presentation&#8221; part of the disseminator label:</p><blockquote><p>A presentation can be one of:</p><ul><li>&#8220;preview&#8221; &#8211; a small/short version of the datastream returned in the datastream&#8217;s original format</li><li>&#8220;screen&#8221; &#8211; a roughly GUI-screen-sized version of the datastream returned in the datastream&#8217;s original format</li><li>&#8220;thumb&#8221; &#8211; a small, static image derivative of the datastream</li><li>&#8220;audio&#8221; &#8211; an auditory derivative of the datastream</li><li>&#8220;description&#8221; &#8211; a Dublin Core description of the item marked up in an HTML table</li><li>&#8220;record&#8221; &#8211; HTML markup of Thumb plus Description (suitable, for instance, as a representation of the object in a browse list)</li></ul></blockquote><p>Specifically, we talked about the <em>audio</em> presentation for non-audio objects (digital objects where audio is not the fundamental focus of the object).</p><ul><li>There could be a descriptive audio track, similar in concept to <a href="http://www.afb.org/section.asp?SectionID=3&#038;TopicID=140" title="Public Policy - American Foundation for the Blind">video description</a>, that would be returned to the calling application.  Perhaps, for instance, the audio of a commentary found on the <a href="http://www.ices.utexas.edu/~natacha/CATTt/hearing.html" title="Exhibition Design Guidelines: Hearing Impairements">handheld audio tour devices in art museums</a>.</li><li>In the absence of other audio description, the disseminator could run a text-to-speech algorithm against the title, creator, and description fields and return that to the calling application.</li></ul><p>This brings to mind another transformation we could apply to give a preview of an object.  (No, I haven&#8217;t moved into the odor or tactile senses &#8212; yet.)  Would it be useful to have a disseminator return a text summary and/or metadata aggregation of an object on demand?</p><p>And, of course, the critical question:  is it the job of a repository to build in access methods like this to be used by applications designed with alternate accessibility in mind?  Should it be up to the application to create the derivatives necessary?  I took a brief look at <a href="http://www.section508.gov/" title="Section 508: The Road to Accessibility">Section 508</a> requirements, but couldn&#8217;t find any real guidance about serving up accessible forms of content.  (There is a great deal of information about how to create accessible web pages, but very little I could find about making assets in those pages accessible.)  But I only know enough about this area to have it on my radar&#8230;and certainly not enough to formulate any answers.</p><p>The original goal of defining these universal disseminators was to assure a base level of functionality for every object in the system &#8212; a contract, if you will, between the repository and any consuming application that it could ask an object to return itself or a derivative of itself in all of these forms.  What do you think?  Should that contract be consciously extended to include universal accessibility?</p><div class='series_links'><a href='http://dltj.org/article/processing-raw-fedora-objects/' title='Processing Raw Fedora Objects'>Previous in series</a> <a href='http://dltj.org/article/representing-collections-in-fedora/' title='Representing Collections In FEDORA'>Next in series</a></div>]]></content:encoded> <wfw:commentRss>http://dltj.org/article/fedora-disseminators-for-accessibility/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> </channel> </rss>
<!-- Served from: dltj.org @ 2012-05-24 16:20:39 by W3 Total Cache -->
