Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recipe #0013 — Poster Image Displayed Before Interaction #151

Merged
merged 41 commits into from
Aug 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
f61ce09
Initial commit to version control ⚡️
triplingual Mar 3, 2020
3249c65
Updated index doc to more recent template
triplingual Mar 3, 2020
7c05cd1
Added this recipe to this branch's TOC
triplingual Mar 3, 2020
27539bf
Next pass of revisions
triplingual Mar 3, 2020
50c00d6
Corrected link for this recipe
triplingual Apr 1, 2020
bb54ae4
Matched master branch
triplingual Apr 13, 2020
315c71d
Began refining
triplingual Apr 13, 2020
49391ee
Improved formatting, refined content
triplingual Apr 13, 2020
78c31e0
Merge remote-tracking branch 'origin/master' into 0013-placeholderCanvas
triplingual Apr 13, 2020
f2f625d
Refined, including using new viewer includes
triplingual May 22, 2020
493c556
Merge remote-tracking branch 'origin/master' into 0013-placeholderCanvas
triplingual May 22, 2020
ced1026
Improved Manifest label
triplingual May 22, 2020
24dd419
Replaced unhelpful URI path nodes
triplingual May 26, 2020
0147aab
Replaced content, made IDs more semantic
triplingual May 29, 2020
a630d58
Edited for readability and precision
triplingual Jun 3, 2020
df75207
Dummy commit to test include behavior
triplingual Jun 4, 2020
9cbde07
Merge remote-tracking branch 'origin' into 0013-placeholderCanvas
triplingual Jun 4, 2020
ec53060
Merge branch 'master' into 0013-placeholderCanvas
triplingual Jul 2, 2020
8b45f3f
Added recipe link to main page
triplingual Jul 7, 2020
a023112
Fixed omission of recipe number in Related Recipes
triplingual Jul 7, 2020
c1d0926
Rewrote text introducing example Manifest
triplingual Jul 7, 2020
d00754f
Added summary for accessibility ♿️
triplingual Jul 7, 2020
c41b21d
Major rewrite for readability and content
triplingual Jul 7, 2020
fb3857c
Fixed value to be a proper JSON object
triplingual Jul 8, 2020
f903833
Fixed misspelling
triplingual Jul 8, 2020
7e0ce98
Adjusted line highlighting
triplingual Jul 8, 2020
a72077c
Removed Mirador
triplingual Jul 8, 2020
2ed6e85
Edited text, added related recipe
triplingual Jul 17, 2020
abecabd
Added disclaimer about lack of property support
triplingual Jul 17, 2020
2818190
Separated support note, cleaned related recipe entry
triplingual Jul 24, 2020
bdbe780
Stripped superfluous summaries
triplingual Jul 27, 2020
f2edb49
Adjusted title per #cookbook convo; stripped viewer
triplingual Jul 27, 2020
682452d
Updated link titles to reflect recipe updates
triplingual Jul 27, 2020
2b34090
Merge branch 'master' into 0013-placeholderCanvas
glenrobson Jul 28, 2020
35d80c4
Changed copy per cookbook editor review comments
triplingual Jul 28, 2020
d6cf4e3
Merge branch 'master' into 0013-placeholderCanvas
glenrobson Jul 28, 2020
642b466
Conforming title text to recipe title
triplingual Aug 5, 2020
4a30071
Fixed line highlighting
triplingual Aug 5, 2020
084bbb4
Added note about target of germane annotation
triplingual Aug 5, 2020
9cca43e
Merge branch 'master' into 0013-placeholderCanvas
triplingual Aug 7, 2020
da46b29
Merge branch 'master' into 0013-placeholderCanvas
glenrobson Aug 24, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _includes/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
[0003]: {{site.baseurl}}/recipe/0003-mvm-video/ "Simplest Manifest - Video"
[0007]: {{site.baseurl}}/recipe/0007-string-formats/ "Embedding HTML"
[0008]: {{site.baseurl}}/recipe/0008-rights/ "Rights"
[0013]: {{site.baseurl}}/recipe/0013-placeholderCanvas/ "Load a Preview Image Before the Main Content"

[0068]: {{site.baseurl}}/recipe/0068-newspaper/ "A newspaper"

Expand Down
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..
* Book (simplest, > 1 canvas) (19)
* Book (viewingDirection variations) (11,12,13,14)
* Book (paging variations) (15,16,17)
* placeholderCanvas
* [Load a Preview Image Before the Main Content][0013]
* accompanyingCanvas
* start (65)

Expand Down
38 changes: 18 additions & 20 deletions recipe/0013-placeholderCanvas/index.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,41 @@
---
title: "Posters: placeholderCanvas"
title: "Load a Preview Image Before the Main Content"
id: 13
layout: recipe
tags: [tbc]
summary: "tbc"
tags: video, audio, image, av
summary: "Provide the user with something to look at before they choose to start interacting with the main content, and/or while they wait for it to load/buffer."
---


## Use Case

Why is this pattern is important?
You have an exceptionally large video to present to site visitors. As each visitor's connection reliability and bandwidth are unknown and unpredictable, you want to show them a still image preview of the video (which will load more quickly) until the video has finished loading or has sufficiently buffered.

## Implementation notes

How does one implement the pattern?
Across a Manifest and its resources, you may use more than one `placeholderCanvas`, allowing you to have an authentic `placeholderCanvas` for each appropriate resource (Collection, Manifest, Canvas, and Range).

The target of the Annotation of a `placeholderCanvas` should have as its value the id of the `placeholderCanvas`, not the id of the resource that has the `placeholderCanvas`.

Always keep in mind the wide latitude given conforming clients: It is up to the client whether and in what sort of UI to display content you place in a `placeholderCanvas` property. Do not use this property for content that must be displayed. On the other hand, placing content in a `placeholderCanvas` does communicate to a conforming client that the content, if displayed, should be displayed before the resource to which it is attached.

## Restrictions

When is this pattern is usable / not usable? Is it deprecated? If it uses multiple specifications, which versions are needed, etc.? (Not present if not needed.)
Each instance of `placeholderCanvas` may only contain one Canvas, and as such may specifically not contain an additional `placeholderCanvas` or an `accompanyingCanvas`.

## Example

Describe in prose and provide examples, e.g.:
In the example, the main content is a video of a performance of Donizetti's _L'elisir d'amore_ and the `placeholderCanvas` is a still frame from the video. For a site visitor with limited bandwidth, showing the still frame allows them to get an advance look at performance aspects such as costuming, staging, and set design.

``` json-doc
{
"@context": [
"http://www.w3.org/ns/anno.jsonld",
"http://iiif.io/api/presentation/{{ page.major }}/context.json"
],
"id": "https://example.org/iiif/book1/manifest",
"type": "Manifest"
}
```
_Note: The `placeholderCanvas` property is not yet supported in viewers._

# Related recipes
{% include manifest_links.html viewers="" manifest="manifest.json" %}

{% include jsonviewer.html src="manifest.json" config="data-line='12-38'"%}

Provide a bulleted list of related recipes and why they are relevant.
# Related recipes

* [Simplest Manifest - Video][0003]
* [Audio Presentation with Accompanying Image][0014], using `accompanyingCanvas` to present one resource simultaneously with another.

{% include acronyms.md %}
{% include links.md %}
Expand Down
63 changes: 63 additions & 0 deletions recipe/0013-placeholderCanvas/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "{{ id.url }}",
"type": "Manifest",
"items": [
{
"id": "{{ id.path }}/canvas/donizetti",
"type": "Canvas",
"duration": 7278.466,
"width": 640,
"height": 360,
"placeholderCanvas": {
"id": "{{ id.path }}/canvas/donizetti/placeholder",
"type": "Canvas",
"width": 640,
"height": 360,
"items": [
{
"id": "{{ id.path }}/canvas/donizetti/placeholder/1",
"type": "AnnotationPage",
"items": [
{
"id": "{{ id.path }}/canvas/donizetti/placeholder/1-image",
"type": "Annotation",
"motivation": "painting",
"body": {
"id": "https://fixtures.iiif.io/video/indiana/donizetti-elixir/act1-thumbnail.png",
"type": "Image",
"format": "image/png",
"width": 640,
"height": 360
},
"target": "{{ id.path }}/canvas/donizetti/placeholder"
}
]
}
]
},
"items": [
{
"id": "{{ id.path }}/donizetti/1",
"type": "AnnotationPage",
"items": [
{
"id": "{{ id.path }}/donizetti/1-video",
"type": "Annotation",
"motivation": "painting",
"body": {
"id": "https://fixtures.iiif.io/video/indiana/donizetti-elixir/vae0637_accessH264_low.mp4",
"type": "Video",
"duration": 7278.466,
"width": 640,
"height": 360,
"format": "video/mp4"
},
"target": "{{ id.path }}/canvas/donizetti"
}
]
}
]
}
]
}