Re: pause-before property for presentations

On Fri, 12 Jul 2002, Ian Hickson wrote:

> Dave Raggett wrote:
>  >> I also don't understand what this property _does_. Does it make elements
>  >> invisible? How? What order do elements reappear? etc.
>  >
>  > It breaks pages up into sections. When you are in projection mode (as defined
>  > my the @media mechanism), the browser would require the user to take some
>  > implementation dependent action (e.g. to hit the space bar) before it would
>  > reveal the next section.
> 
> Ok... sample use case document:
> 
>     <presentation>
>      <slide>
>       <title> Title of Slide 15 </title>
>       <ol>
>        <li> <p> First bullet point in slide 15. </p> </li>
>        <li>
>         <p> Second bullet point. </p>
>         <note> Note about the second bullet point. </note>
>        </li>
>        <li> <p> Third bullet point. </p> </li>
>       </ol>
>       <footer>
>        <number> Slide 15/43 </number>
>        <author> A. N. Other </author>
>       </footer>
>     </document>
> 
> The stylesheet which would go with it:
> 
>     presentation, slide, title, ol, p, note { display: block; }
>     slide { page-break-before: always; }
>     title { font-size: 2em; }
>     li { display: list-item; pause-before: always; }
>     li:first-child { pause-before: avoid; }
>     footer { display: table; width: 100%; }
>     number, author { display: table-cell; }
>     author { text-align: right; }
> 
> Would the footer be visible the whole time?

This depends on how we define the semantics of the pause feature. In
the simplest model it subdivides pages, so that subseqyent sections
are hidden until revealed. In this model, the footer would be hidden
untl the third bullet point was revealed. If you wanted a visible
footer you would use the CSS page footer support. Alternatively, you
could use CSS positioning to position an element at the bottom.

Another model would make it easier for people to have markup that is
never hidden. An element is initially hidden if pause-before is set
to "always" on it, its parent or an ancestor element. What if you
then set pause-before: avoid on a child of a parent which had the
property set to "always"? Would this cause problems?  If the answer
to that is yes, then we could have a rule that pause-before:always
takes precedent over pause-before:avoid on a child or descendent
element. In this model, the footer is always visible on the slide.

> > The process is repeated until the end of the page is reached
> > and the page is flipped to the next one. The hidden sections
> > would still take up the same screen real estate as when they
> > are revealed.
> 
> So they are hidden? (Their 'visibility' property computes to
> 'hidden' until the element is shown?) That would work, although it
> is a little limited.

Do you have any other ideas on this?

> This suggestion needs only two values for the property, 'always'
> and 'avoid' in the terms you used. It only provides for showing
> and hiding the elements, though, it doesn't provide, for example,
> a way for the element to go from being shaded to being fully
> visible.

I did think about that, and one solution would be to introduce three
pseudo classes which apply to elements before they are revealed,
elements that have just been revealed and which are the current
focus of the presentation, and elements that are revealed but which
are no longer the focus of the presentation. This would allow you to
"shade" bullet points you haven't gotten to yet, and to emphasis the
current bullet point as desired.  The pseudo classes wouldn't apply
to elements that are always visible.  I haven't come up with any
good names for these pseudo classes. Any suggestions?

p.s. I suggest that "auto" may also be of value.

-- 
 Dave Raggett <dsr@w3.org> or <dave.raggett@openwave.com>
 W3C lead for voice/multimodal. http://www.w3.org/People/Raggett 
 tel/fax: +44 1225 866240 (or 867351) +44 771 213 7629 (GSM)

Received on Monday, 15 July 2002 04:55:50 UTC