figure-examples

From Microformats Wiki
Jump to navigation Jump to search

Figure examples

This page documents examples of mark up for figures like images, captions and data tables in webpages and the class-names that they've used - Chris Messina

The Problem

There is no HTML tags for identifying or marking up supporting content like illustrative images (as in encyclopaedic references), photographs and their captions, credits or licenses (as in news articles) or data tables. Typically this content can be found in close proximity to the relevant information, but oftentimes mixed with other elements.

The goal of this effort is to document and reflect the real-world needs of such design patterns while paying close attention to the types of data that people are using in this supportive role and also paying close attention to the existing class names and presentational styles that go along with such formats.

Participants

Real-World Examples

These are examples and implementations in the wild of various efforts at marking up figures in web pages, blog posts and articles.

CNET

CNET uses cnet-image-div, float-left, cnet-image, image-credit and image-caption to mark up supporting photographs and artwork.

See this example: Why I recommend the iPhone -- and don't.

HTML5

HTML5 introduces a new tag called "figure", which represents a block-level image, along with a caption:

<figure id="fig2">
  <legend>Figure 2. Install Mozilla XForms dialog</legend>
  <img alt="A Web site is requesting permission to install the following item: 
    Mozilla XForms 0.7 Unsigned" 
    src="installdialog.jpg" border="0" height="317" hspace="5" vspace="5" width="331" />
</figure>

This is slightly different from the broader goal of this effort, but nevertheless points to current work on this topic.

Existing Practices

In many cases, classes that are used exclusively for alignment and positioning are documented herein order to have an accurate sense for how people mark up this kind of content in practice.

FactoryCity Blog

  • uses a series of figure classes to markup figures.
  • the approach used is to mark up block level figures with both figure and either figure-a or figure-c classes.
  • figure-b and figure-d are used for inline figures aligned right and left, respectively
  • the a, b, c, d pattern is modeled after the top, right, bottom, left order of CSS attribute values

K2 WordPress Theme

  • The K2 stylesheet includes the following figure-related CSS:
.center {
	text-align: center;
	}

.alignright {
	float: right;
	}
	
.alignleft {
	float: left
	}

img.center, img[align="center"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
	}
	
img.alignright, img[align="right"] {
	padding: 4px;
	margin: 0 0 2px 7px;
	display: inline;
	}

img.alignleft, img[align="left"] {
	padding: 4px;
	margin: 0 7px 2px 0;
	display: inline;
	}
	
img.noborder {
	border: none !important;
	}

Habari K2 Theme

Similar to K2, the Habari K2 instance supports the following classes:

.center {
	text-align: center;
	}

.alignright {
	float: right;
	}
	
.alignleft {
	float: left
	}

img.center, img[align="center"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
	}
	
img.alignright, img[align="right"] {
	padding: 4px;
	margin: 0 0 2px 7px;
	display: inline;
	}

img.alignleft, img[align="left"] {
	padding: 4px;
	margin: 0 7px 2px 0;
	display: inline;
	}
	
img.noborder {
	border: none !important;
	}

ColdBlue WordPress Theme

  • includes the classes float-left or float-right for aligning figures

Revenue Watch Institute (website forthcoming)

During the development of the new website for Revenue Watch, this was what we cam up with to handle figures:

<div class="figure photograph">
  <img src="/path/to/img.jpg" alt="" />
  <p class="credit">Photo by <cite>Bob Johnson</cite></p>
  <p class="caption"><em class="title">Figure 1</em> Cras rutrum, enim at placerat varius, nisi massa consectetuer.</p>
</div>
  • Figures can be further classified as "photograph" or "illustration" (these could possibly be extended to include other options such as "chart," "line-art", etc.) (optional)
  • The "title" class can be added to any element within the figure (optional)
  • Credit for the figure is denoted with the "credit" class (optional)
  • A caption is also available (optional)

Default styles:

.figure {
  margin: 0 0 1.5em;
}
.figure p {
  margin: 0;
  width: auto;
}
.figure .credit {
  font-size: .8em;
  text-align: right;
}
.figure .credit cite {
  font-style: inherit;
}
.figure .caption {
  font-style: italic;
  font-size: 1.1em;
}
.figure .title {
  font-style: normal;
  font-weight: bold;
}
.figure .title:after {
  content: ":";
}

No presentational information is added to the figures. The presentation is determined via script as a progressive enhancement (ALA article forthcoming).

Tables receive no figure-related styles, but graphs, charts, and maps do.

Comments

Why is "credit" not an hCard? Also, for pictures of places any geo/ hcard microformat included in the caption should be understood to be associated with the figure. There is debate elsewhere, about whether coordinates should be for the camera position, or the object photographed; with consensus coming down on the side of the former [1], [2]. That said, the whole "figure" div could be an hcard, with the picture being part of that; and a separate hCard for the photographer included. Complex... Andy Mabbett 16:52, 21 Aug 2007 (PDT)

Further discussion

A few blog posts capture the essence of this discussion well: