chromium/third_party/blink/web_tests/fast/forms/label/labelable-elements.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="../resources/common.js"></script>
<script src="../resources/label-test-util.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description('Test labelable elements have labels attribute and others do not.');

var tester = setupLabelsTest(withParentLabel);
for (var name in tester.dataSet) {
    var data = tester.dataSet[name];
    var element = data.element;
    if (!data.isSupported && !data.inputType) {
        debug('\nUnsupported: ' + name + ' ' + element);
        shouldBeUndefined('element.labels');
        shouldNotBe('element.labels', 'null');
    } else if (!data.isLabelable) {
        debug('\nNot labelable: ' + name + ' ' + element);
        if (data.inputType) {
            // Note: labels attribute of input element isn't undefined,
            // because HTMLInputElement.idl defines labels attribute.
            shouldBe('element.labels', 'null');
        } else {
            shouldBeUndefined('element.labels');
            shouldNotBe('element.labels', 'null');
        }
    } else {
        debug('\nLabelable: ' + name + ' ' + element);
        shouldBe('element.labels.length', '1');
    }
}
</script>
</body>
</html>