Re-engineering the HTML5 <video> tag for semantics and modularity.