<html>
    <head>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.dumpAsText();
            }
        </script>
    </head>
    <body onload="test()">
        <p>Bug <a href="https://bugs.webkit.org/show_bug.cgi?id=139856">139856</a>: Hidden aria table crash.</p>
        <p>This test PASSES if it does not CRASH.</p>

        <ul aria-hidden="true">
            <table>
                <theader>
                    <td>
                        <span aria-live="assertive"></span>
                    </td>
                </theader>
                <caption></caption>
            </table>
        </ul>
        <svg onerror="logPass()"></svg>
    </body>
</html>
