hCard microformat Validator (beta, of course)

This is an unofficial validator¹/conformance checker of the hCard microformat.

Po polsku En français
(translations welcome!)

Input

URL

Check entire XHTML or HTML page by entering its HTTP URL.

Fragment

Paste well-formed XHTML fragment or complete document containing hCard.

Upload

Upload HTML or XHTML file to validate it. For this to work your browser must be setting MIME types properly.

Example

If searching for hCards in the wild is tiring, check one of the test-cases:

Browse examples

API & Other

Any page by Referer

<a href="http://hcard.geekhood.net/referrer/">Validate hCards</a>

Bookmarklet

hCard?

RESTful JSON API

Send GET request to http://hcard.geekhood.net/?url=URL to validate&output=json.

Output will be roughly compatible with the Validator.nu JSON API. Likely to change in the future.

Please use this API for validation, not just as an converter/extraction tool.


Send Feedback

You can send feedback via e-mail or the form below.

If you're reporting a bug or have a suggestion, don't forget to include example hCard code.

Result

This document contains errors.

File source

<!DOCTYPE html><html lang="en"  data-adblockkey=MFwwDQYJKoZIhv­cNAQEBBQADSwAwSAJBANnylWw2vLY4hUn9w06zQKbhKBfvjFUC­sdFlb6TdQhxb9RXWXuI4t31c+o8fYOv/s8q1LGPga3DE1L/tHU4LENMCAwEAAQ==_kYis0j5­QKziysHJEvsEMGpDuYFW22Og+hiMaUZm5PybbbwCO6QmCsEa5T­s+U6kr19f+4KRT4ersBgiz9VaSUIg==><head><meta charset="utf-8"><title>backgroundcheckvcry.stream&nbsp;-&nbsp;backgroundcheckvcry Resources and Information.</title><meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"><meta name="description" content="backgroundcheckvcry.stream is your first and best source for information about backgroundcheckvcry. Here you will also find topics relating to issues of general interest. We hope you find what you are looking for!"><link
        rel="icon"
        type="image/png"
        href="//img.sedoparking.com/templates/logos/sedo_logo.png"
/></head><body><img width="16" height="16" src="https://img.sedoparking.com/images/js_preloader.gif" alt="" /><script
            async
            src='https://euob.iseaskies.com/sxp/i/581749a3c1e7922374ca9b3d4dff0407.js'
            data-ch='Yahoo Test'
            class='ct_clicktrue_95200'
            data-jsonp='onCheqResponse'
            data-uvid="b0adf443-7247-46d9-a518-5bbdddf75744"
    ></script><script type="text/javascript">
    const CHEQ_BLOCKED_REASONS = [
        "Automation tool", "Disabled JS", "Malicious Bots",
        "False Representation", "Low quality users",
        "Location Spoofing", "IP reputation", "Browser Anomalies",
        "Invalid Bot Activity"
    ];

    function doRedirect() {
        const request = new XMLHttpRequest();
        request.open('GET', "\/\/backgroundcheckvcry.stream/search/tsc.php?ses\u003DogcPEx6y_tiO9jkl­Kn6JdfI9e5vaI5_N_DiLcawNpLlsJI\u002Dt0nfN6mB7CCTzI­Jc6Uqv6ZB4jypB92QEMIN6u3mruZeb8\u002DFSHQGt7ET4IR9­_q5zdIM40Fb5iTui8P74MwcW_c_oQf_SJ7S2c883i8q7zZhdaE­OYvklwHyExerQC4ucO7RfQ4wmvL5MFePADiPMDjiCn3v1MEa5J­4\u002D0eSvRoY6MPKju5vk9L6OQwxkNIcVxomI9kqHY1QZrS2­\u002DVVbMA40vckibAOBi4x4EuBl_y9X5NDC18vqUZnnkZq1y­Rt1hd0se1y7m7IIbeEmpyqHM9xQEEF25ECoYPuLC9fN51JOt8c­MgUxHDeHY6AeBgn3R_IP9VPcIwzn0f4j0qe1s\u0026cv\u003D2");
        request.send();
                request.onreadystatechange = function () {
            if (request.readyState === 4 && request.status === 200) {
                window.location = "\/\/backgroundcheckvcry.stream\/search\/redirect.php\u003Ff\u003D­http\u00253A\u00252F\u00252Ftheresultsearch.com\u0­0253Fdn\u00253Dbackgroundcheckvcry.stream\u002526s­ksubid\u00253D3632559\u002526_slsen\u00253D0\u0025­26pid\u00253D9PO7FO5YW\u0026v\u003Dogc_U\u002DFod3­YW4PypTPdx01yNahz4I7ZyBBRG73JbQm8hvS3zvvUGg\u002Dz­toRrcDM5xiTdW_b5p7gEoXKrC9mj1bSKRFUwORpBgUGU4obyn4­0fhrQcu4gcKqGm3nF6ZgIyqEbtsrvZEobM9T_ERPEvPv_n\u00­2D9PX8z_g3O5OjzpLfQDiizutZlNfKTkntUSYI3HfvLm6YBMg1­zklyJiSiBHfgTa3MKq_FluMoLIuw3c\u0026l\u003Dogc\u00­2Dkx64IIrBlr5V\u002D9aMkYrYzbrN6DOHQj59NeYZ4Lh1Omx­YjH7uQDDUNrIQAkpxSafvZ12y_hbgw0dgw4sbJiJKiVuUeHhbt­rIDS0kZOnB8K\u002DHSDdIOAiHMZcwKwNpmU421jLvSSQOWHW­4FUqBjcXEmtKB2vWslBjaeo72hxblmpt\u002DiwALacCiQofv­\u002DFLLqcERnMBMjNKjpeKhINngTmFwllF4DYzUCmVtKn62r­3epyLKqKUoPEv0HL41UQNjiyq0wkjbqiv0\u002DZ0I19PwaKT­36TaublxDDnnw\u002DAoCSAoRITJ64hTrklHEEpYroDqufYpv­40gtkXHffl3NdD4ENFtrkmKO_yf9UWpxqXLrXVPjf4wva1mRxq­cB7BwnW8vIQ1nNhYQ3QGH8z5nJ_US3zeGsdKZezUcbzV2MBreX­DbvMCMwMeMGRa4V9KiLAkqyxS5KsKuuCJsVy6R90gJpfC2NNw8­7epmC09DP8JzrNA32lRBWAv0u8xvM4mcAoLxC97BsY_wAr3OVZ­YTvnBp59yO8S7HyDm0qXZhKhlsouLiOhtrVHPlIj\u002DZeQn­Q33oci30ssFRFR3fXSUZCs2EVhPZ1fctrEXtL55qPclVpL52Em­3Ew7yvoq4xK7LwJwp6H1JAuMw\u002DH\u002DHbu4JmXwiTZV­KHfmDBI1WMAeMa_P776M9gJkGt7sTFcb6UgbximFvOMuSPTwu0­ZmV5McZMtV2zQijr\u002D5ZWO6xer_8";
            }
        };
            }

        (function () {
        let cheqEvtReceived = false;

        document.body.addEventListener("cheqEvt", function (event) {
            cheqEvtReceived = true;
            const data = event.detail;
            if (data && typeof data === "object") {
                const cheqTT = (data.cheqObj && data.cheqObj.cheqTT) || '';
                if (!CHEQ_BLOCKED_REASONS.includes(cheqTT)) {
                    doRedirect();
                }
                return;
            }
            doRedirect();
        });

        setTimeout(function () {
            if (!cheqEvtReceived) {
                doRedirect();
            }
        }, 500);
    })();
    </script></body></html>

Parsed source

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" data-adblockkey="MFwwDQYJKoZIh­vcNAQEBBQADSwAwSAJBANnylWw2vLY4hUn9w06zQKbhKBfvjFU­CsdFlb6TdQhxb9RXWXuI4t31c+o8fYOv/s8q1LGPga3DE1L/tHU4LENMCAwEAAQ==_kYis0j5­QKziysHJEvsEMGpDuYFW22Og+hiMaUZm5PybbbwCO6QmCsEa5T­s+U6kr19f+4KRT4ersBgiz9VaSUIg==">
  <head>
    <meta charset="utf-8"/>
    <title>backgroundcheckvcry.stream - backgroundcheckvcry Resources and Information.</title>
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
    <meta name="description" content="backgroundcheckvcry.stream is your first and best source for information about backgroundcheckvcry. Here you will also find topics relating to issues of general interest. We hope you find what you are looking for!"/>
    <link rel="icon" type="image/png" href="//img.sedoparking.com/templates/logos/sedo_logo.png"/>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    <!-- meta inserted by hCard Validator -->
  </head>
  <body>
    <img width="16" height="16" src="https://img.sedoparking.com/images/js_preloader.gif" alt=""/>
    <script async="" src="https://euob.iseaskies.com/sxp/i/581749a3c1e7922374ca9b3d4dff0407.js" data-ch="Yahoo Test" class="ct_clicktrue_95200" data-jsonp="onCheqResponse" data-uvid="b0adf443-7247-46d9-a518-5bbdddf75744"/>
    <script type="text/javascript">
    const CHEQ_BLOCKED_REASONS = [
        "Automation tool", "Disabled JS", "Malicious Bots",
        "False Representation", "Low quality users",
        "Location Spoofing", "IP reputation", "Browser Anomalies",
        "Invalid Bot Activity"
    ];

    function doRedirect() {
        const request = new XMLHttpRequest();
        request.open('GET', "\/\/backgroundcheckvcry.stream/search/tsc.php?ses\u003DogcPEx6y_tiO9jkl­Kn6JdfI9e5vaI5_N_DiLcawNpLlsJI\u002Dt0nfN6mB7CCTzI­Jc6Uqv6ZB4jypB92QEMIN6u3mruZeb8\u002DFSHQGt7ET4IR9­_q5zdIM40Fb5iTui8P74MwcW_c_oQf_SJ7S2c883i8q7zZhdaE­OYvklwHyExerQC4ucO7RfQ4wmvL5MFePADiPMDjiCn3v1MEa5J­4\u002D0eSvRoY6MPKju5vk9L6OQwxkNIcVxomI9kqHY1QZrS2­\u002DVVbMA40vckibAOBi4x4EuBl_y9X5NDC18vqUZnnkZq1y­Rt1hd0se1y7m7IIbeEmpyqHM9xQEEF25ECoYPuLC9fN51JOt8c­MgUxHDeHY6AeBgn3R_IP9VPcIwzn0f4j0qe1s\u0026cv\u003D2");
        request.send();
                request.onreadystatechange = function () {
            if (request.readyState === 4 &amp;&amp; request.status === 200) {
                window.location = "\/\/backgroundcheckvcry.stream\/search\/redirect.php\u003Ff\u003D­http\u00253A\u00252F\u00252Ftheresultsearch.com\u0­0253Fdn\u00253Dbackgroundcheckvcry.stream\u002526s­ksubid\u00253D3632559\u002526_slsen\u00253D0\u0025­26pid\u00253D9PO7FO5YW\u0026v\u003Dogc_U\u002DFod3­YW4PypTPdx01yNahz4I7ZyBBRG73JbQm8hvS3zvvUGg\u002Dz­toRrcDM5xiTdW_b5p7gEoXKrC9mj1bSKRFUwORpBgUGU4obyn4­0fhrQcu4gcKqGm3nF6ZgIyqEbtsrvZEobM9T_ERPEvPv_n\u00­2D9PX8z_g3O5OjzpLfQDiizutZlNfKTkntUSYI3HfvLm6YBMg1­zklyJiSiBHfgTa3MKq_FluMoLIuw3c\u0026l\u003Dogc\u00­2Dkx64IIrBlr5V\u002D9aMkYrYzbrN6DOHQj59NeYZ4Lh1Omx­YjH7uQDDUNrIQAkpxSafvZ12y_hbgw0dgw4sbJiJKiVuUeHhbt­rIDS0kZOnB8K\u002DHSDdIOAiHMZcwKwNpmU421jLvSSQOWHW­4FUqBjcXEmtKB2vWslBjaeo72hxblmpt\u002DiwALacCiQofv­\u002DFLLqcERnMBMjNKjpeKhINngTmFwllF4DYzUCmVtKn62r­3epyLKqKUoPEv0HL41UQNjiyq0wkjbqiv0\u002DZ0I19PwaKT­36TaublxDDnnw\u002DAoCSAoRITJ64hTrklHEEpYroDqufYpv­40gtkXHffl3NdD4ENFtrkmKO_yf9UWpxqXLrXVPjf4wva1mRxq­cB7BwnW8vIQ1nNhYQ3QGH8z5nJ_US3zeGsdKZezUcbzV2MBreX­DbvMCMwMeMGRa4V9KiLAkqyxS5KsKuuCJsVy6R90gJpfC2NNw8­7epmC09DP8JzrNA32lRBWAv0u8xvM4mcAoLxC97BsY_wAr3OVZ­YTvnBp59yO8S7HyDm0qXZhKhlsouLiOhtrVHPlIj\u002DZeQn­Q33oci30ssFRFR3fXSUZCs2EVhPZ1fctrEXtL55qPclVpL52Em­3Ew7yvoq4xK7LwJwp6H1JAuMw\u002DH\u002DHbu4JmXwiTZV­KHfmDBI1WMAeMa_P776M9gJkGt7sTFcb6UgbximFvOMuSPTwu0­ZmV5McZMtV2zQijr\u002D5ZWO6xer_8";
            }
        };
            }

        (function () {
        let cheqEvtReceived = false;

        document.body.addEventListener("cheqEvt", function (event) {
            cheqEvtReceived = true;
            const data = event.detail;
            if (data &amp;&amp; typeof data === "object") {
                const cheqTT = (data.cheqObj &amp;&amp; data.cheqObj.cheqTT) || '';
                if (!CHEQ_BLOCKED_REASONS.includes(cheqTT)) {
                    doRedirect();
                }
                return;
            }
            doRedirect();
        });

        setTimeout(function () {
            if (!cheqEvtReceived) {
                doRedirect();
            }
        }, 500);
    })();
    </script>
  </body>
</html>

Credits

Written by . Icons are from Tango Icon Library. Test cases include hCard Acid test by Dmitry Baranovskiy, examples from microformats.org and hCard test suite.

Source code is available under the BSD license.


¹ It's not a validator in the XML/SGML sense.