PageSourceSearch

https://app.webability.io/auth/signin

html webability.io collected 2026-10-02 09:57:49 UTC 6,200 bytes, 146 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8" />
5    <link rel="icon" href="/favicon.ico" />
6    <meta name="viewport" content="width=device-width, initial-scale=1" />
7    <meta name="theme-color" content="#000000" />
8    <meta
9      name="description"
10      content="WebAbility.io provides comprehensive web accessibility solutions including ADA compliance widgets, WCAG testing, and accessibility scanning tools. Make your website accessible to everyone with our affordable solutions."
11      charset="utf-8"
12    />
13    <meta
14      name="keywords"
15      content="WebAbility.io,Web Accessibility Widget,ADA Compliance,WCAG Compliance,WebAbility.io features,Free Trial Accessibility Widget,Affordable ADA Compliance,Rapid Integration Accessibility,Official Accessibility Statement,Accessible Websites,WebAbility.io solutions,ADA Website Widget,WCAG 2.0 Compliance,Web Accessibility Certification,WebAbility.io benefits,ADA Compliance Tool,WCAG Compliance Widget,Accessibility for Websites,Affordable Accessibility Solutions,Accessibility Compliance Statement,accessibility scanner,website accessibility test"
16    />
17    <link rel="apple-touch-icon" href="/favicon.ico" />
18
19    <link rel="manifest" href="/manifest.json" />
20    <link rel="preconnect" href="https://fonts.googleapis.com" />
21    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
22    <!-- Inter, variable. The range is 300..900 because src/ uses font-light
23         through font-black; the old link fetched only 400/500/600, so every
24         font-bold on the site was being synthesised by the browser. -->
25    <link
26      rel="stylesheet"
27      href="https://fonts.googleapis.com/css2?family=Inter:[email protected]&display=swap"
28    />
29
30    <!-- Google Tag Manager (GTM-NQQHF865) -->
31    <!-- Loaded unconditionally: logged-in dashboard users are treated as
32         consented (product decision DEV-937). No cookie banner / c15t gate
33         here, unlike the marketing site. -->
34    
34<script>
vendor: 455 bytes, lines 34-44
34
35      (function (w, d, s, l, i) {
36        w[l] = w[l] || [];
37        w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
38        var f = d.getElementsByTagName(s)[0],
39          j = d.createElement(s),
40          dl = l != 'dataLayer' ? '&l=' + l : '';
41        j.async = true;
42        j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
43        f.parentNode.insertBefore(j, f);
44      })(window, document, 'script', 'dataLayer', '
44GTM-NQQHF865
vendor: 8 bytes, lines 44-45
44');
45    
45</script>
45
46
47    <!-- Rewardful Integration -->
48    
48<script>
49      (function (w, r) {
50        w._rwq = r;
51        w[r] =
52          w[r] ||
53          function () {
54            (w[r].q = w[r].q || []).push(arguments);
55          };
56      })(window, 'rewardful');
57    </script>
57
58    
58<script
59      async
60      src="https://r.wdfl.co/rw.js"
61      data-rewardful="bf2fdc"
62    ></script>
62
63
64    <title>
65      WebAbility.io - Web Accessibility Solutions & ADA Compliance Widget
66    </title>
67
68    <style>
69      noscript {
70        font-weight: bold;
71        font-size: large;
72        display: flex;
73        justify-content: center;
74        background-color: #ef4444;
75        color: #ffffff;
76        padding: 20px;
77        border-radius: 10px;
78        width: 40%;
79        margin: 0 auto;
80      }
81      /* Google Translate - hide "Translated into" top banner */
82      .goog-te-banner-frame.skiptranslate,
83      iframe.goog-te-banner-frame,
84      .skiptranslate iframe {
85        display: none !important;
86        height: 0 !important;
87        visibility: hidden !important;
88      }
89      body, html { top: 0 !important; position: static !important; }
90      /* Prevent body shift when banner is hidden */
91      body.te-translated { top: 0 !important; }
92    </style>
93    
93<script type="module" crossorigin src="/assets/index-BVVRvbjs.js"></script>
93
94    <link rel="modulepreload" crossorigin href="/assets/vendor-CXh69xiq.js">
95    <link rel="modulepreload" crossorigin href="/assets/app-vendor-nlFuy7bi.js">
96    <link rel="stylesheet" crossorigin href="/assets/index-BTsPM9Aa.css">
97  </head>
98  <body>
99    <!-- Google Translate + React compatibility: patch DOM methods before React loads (prod-ready) -->
100    
100<script>
101      (function () {
102        if (window.__googTranslateReactFix) return;
103        window.__googTranslateReactFix = true;
104        var origRemoveChild = Node.prototype.removeChild;
105        var origInsertBefore = Node.prototype.insertBefore;
106        var origReplaceChild = Node.prototype.replaceChild;
107        Node.prototype.removeChild = function (child) {
108          try {
109            if (!this.contains(child)) return child;
110            return origRemoveChild.call(this, child);
111          } catch (e) {
112            return child;
113          }
114        };
115        Node.prototype.insertBefore = function (newNode, ref) {
116          try {
117            if (ref && !this.contains(ref)) return this.appendChild(newNode);
118            return origInsertBefore.call(this, newNode, ref);
119          } catch (e) {
120            try { return this.appendChild(newNode); } catch (_) { return newNode; }
121          }
122        };
123        Node.prototype.replaceChild = function (newChild, oldChild) {
124          try {
125            if (!this.contains(oldChild)) return this.appendChild(newChild);
126            return origReplaceChild.call(this, newChild, oldChild);
127          } catch (e) {
128            try { return this.appendChild(newChild); } catch (_) { return newChild; }
129          }
130        };
131      })();
132    </script>
132
133    <noscript>You need to enable JavaScript to run this app.</noscript>
134    <!-- Google Tag Manager (noscript) -->
vendor: 87 bytes, lines 134-137
134
135    <noscript>
136      <iframe
137        src="https://www.googletagmanager.com/ns.html?id=
137GTM-NQQHF865
vendor: 126 bytes, lines 137-143
137"
138        height="0"
139        width="0"
140        style="display: none; visibility: hidden"
141      ></iframe>
142    </noscript>
143    
143<div id="root"></div>
144  
144<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"696347ea49ed47df8351bf44403275ce","r":1,"spa":2}' crossorigin="anonymous"></script>
144
145</body>
146</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.