W3C home > Mailing lists > Public > public-texttracks@w3.org > December 2011

Re: Roll-up captions in WebVTT

From: Christopher Giffard <christopher.giffard@cgiffard.com>
Date: Wed, 21 Dec 2011 17:49:18 +1100
Cc: Glenn Maynard <glenn@zewt.org>, public-texttracks@w3.org, adrian.redman@deewr.gov.au
Message-Id: <3E2F997E-2EC8-4DC2-8335-C713DE28E9AE@cgiffard.com>
To: Kevin Sweeney <ksweeney@vimeo.com>
And after all that, I forgot to mention one of the best parts this (or similar) technique/s: in clients that don't support it - it just degrades to a non-rollup display mode.

Christopher

On 21/12/2011, at 5:06 PM, Christopher Giffard wrote:

> Hi all!
> 
> I'd like to give the initial caveat that I'm somewhat behind with this thread (and struggling to catch up) so please forgive me if anything I've written has already been suggested (or roundly rejected!) ;-)
> 
> This is a really left field proposal, so it may suffer from a variety of implementation challenges that I'm not personally aware of (and it would probably require a re-think of some of the cue rendering logic.) However from the perspective of an author rather than an implementor this technique makes far more sense to me.
> 
> The long and short of it is that instead of making rollup captions into a problem to be solved with individual cue tagging, or CSS (which doesn't seem very clean to me, especially when a caption track might be viewed in a standalone player) we define abstract 'rollup' objects, which are roughly like meta-cues - they have a lot of the same settings, but instead of containing text, they contain other cues.
> 
> These would map to CSS boxes positioned within the video render area. You'd define them with a special cue like this:
> 
> 	DEFINE --> rollup(cues: 2, D: vertical, L: 20%, T:10%, S:80%, id:mainRollup)
> 
> The syntax is obviously just a suggestion at this stage, but the important thing is that it recognises the rollup as a first-class object that can be positioned independently of other cues - and in my mind, integrates better with the cue positioning model than a CSS driven solution.
> 
> In the above example, we're specifying a rollup 'cue-depth' (horrible term, but I can't think of anything better) of two cues, a vertical direction, line position of 20%, text position of 10%, and a size of 80%. With the exception of the cue count, all of that matches what can be defined on regular cues - which is the whole point.
> 
> Playing with the closed captioning on the various (Australian) news programs (on DVB-T) last night, one thing was immediately apparent - the text was positioned in quite a few different ways, and I imagine for i10n reasons, you'd want growing-right and growing-up options as well as the standard left/down positions.
> 
> Then there's an ID. I imagine you might want to, in certain and very specific circumstances, have some cues in the rollup, and some cues outside it, obeying the normal positioning model - or two or more rollups for different content. With that in mind, an ID is required to address the rollup in order to assign cues to it, but could also be used to select it in CSS.
> 
> 	2
> 	00:00:16.100 --> 00:00:20.100 R:mainRollup
> 	- and I said 'Wow! a lot of people are starting to talk about this. I should check it out!'
> 
> Because the ID is pretty long, you wouldn't want to include it against every cue - so you could use the previously proposed DEFAULTS cue to specify it:
> 
> 	DEFAULTS --> L:40% S:80% R:mainRollup
> 
> That way you could specify a single rollup right at the top of the VTT file, set it as a default - and the renderer is then aware of the rollup and can take into account text size and override specific aspects of it for accessibility if required - and of course - can make the content appropriately available to assistive technology, in a way no different to ordinary cues.
> 
> The other important benefit is that it can support vertical and vertical-lr rollups. The content authors and web developers don't have to consider problems of internationalisation, cue lengths and font sizes as part of their caption file, as the UA handles all of that.
> 
> So with all that in mind, an example document might look like this:
> 
> 	WEBVTT
> 	
> 	DEFAULTS --> R:mainRollup
> 	
> 	DEFINE --> rollup(cues: 2, T: 10%, S: 60%. id: mainRollup)
> 	
> 	1
> 	00:00:13.000 --> 00:00:16.100
> 	I heard about this arduino project, and I saw it online - 
> 	
> 	2
> 	00:00:16.100 --> 00:00:20.100
> 	- and I said 'Wow! a lot of people are starting to talk about this. I should check it out!'
> 	
> 	3
> 	00:00:20.100 --> 00:00:25.100
> 	Because we wanted to make a tool for our students
> 	
> 	4
> 	00:00:25.100 --> 00:00:29.000
> 	that was more modern than what was available on the market at that moment.
> 
> 	5
> 	00:00:30.00 --> 00:00:35.000 R:0 S:100%
> 	© Copyright message which does not appear inside the rollup
> 
> Note that with the exception of the ID, all attributes to rollup could be optional, as the rollup box would assume the same basic defaults as cues would (but not defaults specified by DEFAULTS tags.) This ensures simplicity of implementation, which in my mind is the important part of making this work.
> 
> To my mind, if it's easy enough to implement rollup captions, we can effectively enforce a 'right' way of doing it, avoiding the inevitably inaccessible and ugly hacks people will content publishers will come up with in order to get what they want. :)
> 
> Kind Regards,
> 
> Christopher Giffard
Received on Wednesday, 21 December 2011 06:49:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 16:57:01 GMT