// Up-to-date as of 2013-04-19.
// Things defined in the W3C's microdata draft, not the main HTML5 draft.
// Note: must be included last so that it hits all elements.

for (var element in elements) {
	elements[element].itemScope = "boolean";
	elements[element].itemType = "settable tokenlist";
	elements[element].itemId = "url";
	elements[element].itemRef = "settable tokenlist";
	elements[element].itemProp = "settable tokenlist";
}
extraTests.push(function() {
	// itemValue only reflects in certain circumstances.  The syntax for our big
	// array thing above doesn't currently support one IDL attribute that reflects
	// different content attributes, so just do this explicitly until that's fixed.
	var reflectItemValue = function(data, localName, attribute) {
		var element = document.createElement(localName);
		element.setAttribute("itemprop", "");
		ReflectionTests.reflects(data, "itemValue", element, attribute);
	}
	reflectItemValue("string", "meta", "content");
	reflectItemValue("url", "audio", "src");
	reflectItemValue("url", "embed", "src");
	reflectItemValue("url", "iframe", "src");
	reflectItemValue("url", "img", "src");
	reflectItemValue("url", "source", "src");
	reflectItemValue("url", "track", "src");
	reflectItemValue("url", "video", "src");
	reflectItemValue("url", "a", "href");
	reflectItemValue("url", "area", "href");
	reflectItemValue("url", "link", "href");
	reflectItemValue("url", "object", "data");
	reflectItemValue("string", "data", "value");
	//TODO: time is more complex
});
