{"id":65752,"date":"2026-10-14T10:35:59","date_gmt":"2026-10-14T05:05:59","guid":{"rendered":"https:\/\/www.quickonlinetips.com\/archives\/?page_id=65752"},"modified":"2026-10-14T14:31:17","modified_gmt":"2026-10-14T09:01:17","slug":"typing-test","status":"publish","type":"page","link":"https:\/\/www.quickonlinetips.com\/archives\/tools\/typing-test\/","title":{"rendered":"Typing Test: Check Your Typing Speed (WPM)"},"content":{"rendered":"<p>Take this free <strong>typing test<\/strong> to check your typing speed in words per minute (WPM) and accuracy. Choose 30 seconds, 1 minute or 2 minutes, click the box and start typing the words shown. The timer starts with your first key and your results appear when time runs out.<\/p>\n<style>.qt-tool{--qt-accent:var(--global-palette1,#2B6CB0);--qt-accent2:var(--global-palette2,#215387);--qt-ink:var(--global-palette3,#1A202C);--qt-muted:var(--global-palette5,#4A5568);--qt-line:var(--global-palette7,#EDF2F7);--qt-soft:var(--global-palette8,#F7FAFC);--qt-bg:var(--global-palette9,#ffffff);background:#DCE7F3;border:1px solid #AEC3DB;border-radius:12px;padding:20px;margin:0 0 1.75em;color:var(--qt-ink);box-shadow:0 1px 2px rgba(26,32,44,.06)} .qt-tool *{box-sizing:border-box} .qt-tool .qt-label{display:block;font-weight:600;margin:0 0 6px} .qt-tool textarea,.qt-tool input[type=number],.qt-tool input[type=text],.qt-tool input[type=date],.qt-tool input[type=time],.qt-tool input[type=datetime-local],.qt-tool select{width:100%;font:inherit;font-size:16px;line-height:1.5;color:var(--qt-ink);background:var(--qt-bg);border:1px solid #CBD5E0;border-radius:8px;padding:10px 12px;margin:0} .qt-tool textarea{min-height:200px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px} .qt-tool textarea.qt-prose{font-family:inherit;font-size:16px} .qt-tool textarea:focus,.qt-tool input:focus,.qt-tool select:focus{outline:2px solid var(--qt-accent);outline-offset:1px;border-color:var(--qt-accent)} .qt-tool .qt-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 0} .qt-tool .qt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-field label{display:block;font-size:14px;font-weight:600;margin:0 0 4px;color:var(--qt-muted)} .qt-tool .qt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:15px;font-weight:600;line-height:1.2;padding:10px 16px;border-radius:8px;border:1px solid var(--qt-accent);background:var(--qt-accent);color:#fff;cursor:pointer;text-decoration:none;min-height:42px} .qt-tool .qt-btn:hover{background:var(--qt-accent2);border-color:var(--qt-accent2);color:#fff} .qt-tool .qt-btn-ghost{background:var(--qt-bg);color:var(--qt-accent)} .qt-tool .qt-btn-ghost:hover{background:var(--qt-line);color:var(--qt-accent2)} .qt-tool .qt-btn-sm{font-size:14px;padding:6px 10px;min-height:34px} .qt-tool .qt-btn-big{font-size:17px;padding:12px 22px} .qt-tool .qt-check{display:flex;align-items:center;gap:8px;font-size:15px;margin:0;cursor:pointer} .qt-tool .qt-check input{width:18px;height:18px;margin:0;accent-color:var(--qt-accent)} .qt-tool .qt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:12px 0 0} .qt-tool .qt-stat{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:10px;text-align:center} .qt-tool .qt-num{display:block;font-size:24px;font-weight:700;line-height:1.2;color:var(--qt-accent2);font-variant-numeric:tabular-nums} .qt-tool .qt-lab{display:block;font-size:13px;color:var(--qt-muted);margin-top:2px} .qt-tool .qt-sub{font-weight:700;margin:16px 0 6px} .qt-tool .qt-note{font-size:13px;color:var(--qt-muted);margin:14px 0 0} .qt-tool .qt-status{min-height:1.4em;font-size:14px;color:var(--qt-accent2);margin:8px 0 0} .qt-tool .qt-error{color:#C53030} .qt-tool .qt-kw{margin:0;padding:0 0 0 1.4em;columns:2;column-gap:24px;font-size:15px} .qt-tool .qt-kw li{margin:0 0 4px;break-inside:avoid} .qt-tool .qt-kw span{color:var(--qt-muted)} .qt-tool .qt-result{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:18px;margin:12px 0 0;text-align:center;font-size:44px;font-weight:700;line-height:1.25;color:var(--qt-accent2);word-break:break-word;font-variant-numeric:tabular-nums;min-height:94px} .qt-tool .qt-result.qt-many{font-size:22px;text-align:left;line-height:1.6;white-space:pre-wrap} .qt-tool .qt-history{margin:0;padding:0;list-style:none;font-size:14px;color:var(--qt-muted)} .qt-tool .qt-history li{padding:4px 0;border-bottom:1px dashed var(--qt-line);word-break:break-word} .qt-tool .qt-presets{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0} .qt-tool .qt-dice{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:14px 0 0;min-height:76px} .qt-tool .qt-die{width:68px;height:68px;border-radius:14px;background:var(--qt-bg);border:2px solid var(--qt-accent);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--qt-ink);box-shadow:0 2px 0 var(--qt-accent2)} .qt-tool .qt-die.qt-pip{font-size:56px;font-weight:400;line-height:1} .qt-tool .qt-die-label{display:block;font-size:11px;font-weight:600;color:var(--qt-muted)} .qt-tool .qt-total{text-align:center;font-size:20px;margin:12px 0 0} .qt-tool .qt-total strong{font-size:32px;color:var(--qt-accent2)} .qt-tool .qt-roll{animation:qtroll .45s ease-out} @keyframes qtroll{0%{transform:rotate(-25deg) scale(.8)}60%{transform:rotate(12deg) scale(1.08)}100%{transform:rotate(0) scale(1)}} .qt-tool .qt-out{background:var(--qt-bg)} .qt-tool p:empty{display:none} .qt-tool p:not(.qt-note){margin:0} .qt-tool .qt-grid:has(.qt-check){grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px 16px} .qt-tool .qt-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:8px 0 18px} .qt-tool .qt-sw{font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;border:1px solid rgba(0,0,0,.12);border-radius:8px;min-height:64px;padding:6px 4px;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;text-transform:uppercase;transition:transform .1s} .qt-tool .qt-sw:hover,.qt-tool .qt-sw:focus{transform:scale(1.06);outline:2px solid var(--qt-accent);outline-offset:1px} .qt-tool .qt-group{font-size:15px;font-weight:700;margin:14px 0 2px} .qt-tool .qt-seg{display:inline-flex;border:1px solid var(--qt-accent);border-radius:8px;overflow:hidden} .qt-tool .qt-seg button{font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border:0;background:var(--qt-bg);color:var(--qt-accent);cursor:pointer} .qt-tool .qt-seg button[aria-pressed=true]{background:var(--qt-accent);color:#fff} .qt-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0 0 1.75em} .qt-card{display:block;background:var(--global-palette8,#F7FAFC);border:1px solid #D5E0EC;border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--global-palette3,#1A202C);transition:transform .12s,box-shadow .12s} .qt-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(26,32,44,.10);color:var(--global-palette3,#1A202C)} .qt-card strong{display:block;font-size:18px;color:var(--global-palette1,#2B6CB0);margin:0 0 4px} .qt-card span{display:block;font-size:15px;color:var(--global-palette5,#4A5568);line-height:1.5} @media (max-width:600px){.qt-tool{padding:14px}.qt-tool .qt-swatches{grid-template-columns:repeat(3,1fr)}.qt-tool .qt-kw{columns:1}.qt-tool .qt-result{font-size:36px}.qt-tool .qt-die{width:58px;height:58px;font-size:24px}.qt-tool .qt-die.qt-pip{font-size:48px}} .qt-tool .qt-two{display:grid;grid-template-columns:1fr 1fr;gap:12px} .qt-tool .qt-two textarea{min-height:180px} .qt-tool .qt-diff{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;margin:12px 0 0;max-height:560px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55} .qt-tool .qt-dl{display:grid;grid-template-columns:3.2em 3.2em 1.4em 1fr;min-width:0} .qt-tool .qt-ln{color:#A0AEC0;text-align:right;padding:0 6px;user-select:none;border-right:1px solid var(--qt-line)} .qt-tool .qt-sign{text-align:center;color:var(--qt-muted);user-select:none} .qt-tool .qt-code{white-space:pre-wrap;word-break:break-word;padding:0 8px 0 2px} .qt-tool .qt-add{background:#F0FFF4} .qt-tool .qt-add .qt-sign{color:#2F855A;font-weight:700} .qt-tool .qt-del{background:#FFF5F5} .qt-tool .qt-del .qt-sign{color:#C53030;font-weight:700} .qt-tool .qt-wadd{background:#9AE6B4;color:inherit;border-radius:2px;padding:0} .qt-tool .qt-wdel{background:#FEB2B2;color:inherit;border-radius:2px;padding:0;text-decoration:line-through} .qt-tool .qt-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;word-break:break-all;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:4px 0 0;min-height:2.4em;color:var(--qt-ink)} .qt-tool .qt-big{font-size:18px;letter-spacing:.04em} .qt-tool .qt-explain{font-size:14px;color:var(--qt-muted);text-align:center;margin:6px 0 0;min-height:1.2em} .qt-tool .qt-result.qt-roman{font-size:32px} .qt-tool .qt-dateout{font-size:24px;font-weight:700;color:var(--qt-accent2);letter-spacing:.03em} .qt-ref{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 1.5em} .qt-ref th,.qt-ref td{border:1px solid #E2E8F0;padding:6px 10px;text-align:left} .qt-ref th{background:#F7FAFC} @media (max-width:600px){.qt-tool .qt-two{grid-template-columns:1fr}.qt-tool .qt-dl{grid-template-columns:2.6em 2.6em 1.2em 1fr}} .qt-tool .qt-coinwrap{display:flex;justify-content:center;margin:8px 0 0;perspective:900px} .qt-tool .qt-coin{position:relative;width:150px;height:150px;cursor:pointer;transform-style:preserve-3d;border-radius:50%} .qt-tool .qt-coin:focus{outline:3px solid var(--qt-accent);outline-offset:4px} .qt-tool .qt-face{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:radial-gradient(circle at 35% 30%,#FFF3B0,#F6C343 45%,#C9931E 100%);border:6px solid #B7791F;box-shadow:inset 0 0 0 4px rgba(255,255,255,.35),0 6px 14px rgba(0,0,0,.18);color:#744210;font-weight:800} .qt-tool .qt-face b{font-size:56px;line-height:1} .qt-tool .qt-face small{font-size:13px;letter-spacing:.12em;margin-top:2px} .qt-tool .qt-face-t{transform:rotateY(180deg);background:radial-gradient(circle at 35% 30%,#F7FAFC,#CBD5E0 45%,#8A99AD 100%);border-color:#718096;color:#2D3748} .qt-tool .qt-coin.qt-show-t{transform:rotateY(180deg)} .qt-tool .qt-coin.qt-flip-h{animation:qtfliph 1s cubic-bezier(.2,.7,.3,1) forwards} .qt-tool .qt-coin.qt-flip-t{animation:qtflipt 1s cubic-bezier(.2,.7,.3,1) forwards} @keyframes qtfliph{0%{transform:translateY(0) rotateY(0)}45%{transform:translateY(-40px) rotateY(900deg)}100%{transform:translateY(0) rotateY(1800deg)}} @keyframes qtflipt{0%{transform:translateY(0) rotateY(0)}45%{transform:translateY(-40px) rotateY(990deg)}100%{transform:translateY(0) rotateY(1980deg)}} .qt-tool .qt-small{font-size:15px;font-weight:400;color:var(--qt-muted);text-align:center;margin:6px 0 0;word-break:break-word} .qt-tool .qt-wheelbox{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start} .qt-tool .qt-wheel{position:relative;width:100%;max-width:440px;margin:0 auto} .qt-tool .qt-wheel canvas{display:block;width:100%;height:auto;aspect-ratio:1\/1;cursor:pointer;border-radius:50%} .qt-tool .qt-wheel canvas:focus{outline:3px solid var(--qt-accent);outline-offset:3px} .qt-tool .qt-pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid #1A202C;filter:drop-shadow(0 2px 1px rgba(0,0,0,.3));z-index:2} .qt-tool .qt-wheelbox textarea{min-height:240px} .qt-tool .qt-result.qt-pop{animation:qtpop .4s ease-out} @keyframes qtpop{0%{transform:scale(.8)}60%{transform:scale(1.06)}100%{transform:scale(1)}} .qt-tool .qt-btn[disabled]{opacity:.6;cursor:wait} .qt-tool .qt-lamp{width:46px;height:46px;border-radius:50%;background:#CBD5E0;border:3px solid #A0AEC0;flex:0 0 auto} .qt-tool .qt-lamp.qt-on{background:#F6E05E;border-color:#D69E2E;box-shadow:0 0 18px 6px rgba(246,224,94,.8)} .qt-tool .qt-result.qt-letters{font-size:72px} .qt-tool .qt-clock{font-size:56px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums;color:var(--qt-ink);background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:14px;margin:12px 0 0;letter-spacing:.02em} .qt-tool .qt-clock.qt-done{color:#C53030;animation:qtpop .4s ease-out} .qt-tool .qt-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px} .qt-tool .qt-tabs button{font:inherit;font-size:15px;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid var(--qt-accent);background:var(--qt-bg);color:var(--qt-accent);cursor:pointer} .qt-tool .qt-tabs button[aria-selected=true]{background:var(--qt-accent);color:#fff} .qt-tool .qt-sent{font-size:17px;line-height:2.4} .qt-tool .qt-sent input{display:inline-block;width:7em;padding:6px 8px;margin:0 4px} .qt-tool .qt-ans{font-weight:700;color:var(--qt-accent2);font-size:20px;margin-left:6px} .qt-tool .qt-table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0 0;background:var(--qt-bg)} .qt-tool .qt-table th,.qt-tool .qt-table td{border:1px solid #D5E0EC;padding:6px 8px;text-align:left;word-break:break-all;vertical-align:top} .qt-tool .qt-table th{background:#F1F5FA;font-weight:700;word-break:normal} .qt-tool .qt-ok{color:#2F855A;font-weight:700} .qt-tool .qt-ip{font-size:38px;font-weight:700;text-align:center;color:var(--qt-accent2);word-break:break-all;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:16px;margin:0} @media (prefers-reduced-motion:reduce){.qt-tool .qt-coin.qt-flip-h,.qt-tool .qt-coin.qt-flip-t{animation:none}.qt-tool .qt-coin.qt-flip-t{transform:rotateY(180deg)}} @media (max-width:700px){.qt-tool .qt-wheelbox{grid-template-columns:1fr}} @media (max-width:600px){.qt-tool .qt-clock{font-size:40px}.qt-tool .qt-ip{font-size:26px}} .qt-tool .qt-srow{display:flex;gap:10px;align-items:center;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:8px 0 0} .qt-tool .qt-sname{font-size:12px;color:var(--qt-muted);flex:0 0 120px} .qt-tool .qt-sval{flex:1 1 auto;font-size:20px;line-height:1.4;word-break:break-word;min-width:0} @media (max-width:600px){.qt-tool .qt-srow{flex-wrap:wrap}.qt-tool .qt-sname{flex-basis:100%}} .qt-tool .qt-meter{height:22px;background:#CBD5E0;border-radius:11px;overflow:hidden;margin:12px 0 0} .qt-tool .qt-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,#38A169 0,#38A169 60%,#D69E2E 80%,#C53030 100%);transition:width .06s linear} .qt-tool video,.qt-tool canvas.qt-snap{display:block;width:100%;max-height:420px;background:#1A202C;border-radius:10px;margin:12px 0 0;object-fit:contain} .qt-tool video.qt-mirror{transform:scaleX(-1)} .qt-tool .qt-kb{display:flex;flex-direction:column;gap:4px;margin:12px 0 0;padding:10px;background:#2D3748;border-radius:10px;outline:none;overflow-x:auto} .qt-tool .qt-kb:focus{box-shadow:0 0 0 3px var(--qt-accent)} .qt-tool .qt-krow{display:flex;gap:4px;min-width:640px} .qt-tool .qt-key{flex:1 1 0;height:36px;border-radius:5px;background:#4A5568;color:#E2E8F0;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;user-select:none;white-space:nowrap;overflow:hidden} .qt-tool .qt-key.qt-kok{background:#2F855A;color:#fff} .qt-tool .qt-key.qt-kon{background:#F6E05E;color:#1A202C} .qt-tool .qt-click{display:flex;align-items:center;justify-content:center;min-height:240px;margin:12px 0 0;border-radius:12px;background:var(--qt-accent);color:#fff;font-size:26px;font-weight:700;text-align:center;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;padding:16px} .qt-tool .qt-click.qt-wait{background:#C53030} .qt-tool .qt-click.qt-go{background:#2F855A} .qt-tool .qt-click.qt-off{background:#718096;cursor:default} .qt-full{position:fixed;inset:0;z-index:999999;cursor:none} .qt-full-tip{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1000000;background:rgba(0,0,0,.7);color:#fff;font:14px\/1.4 sans-serif;padding:8px 14px;border-radius:8px} .qt-tool .qt-gparow{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) auto;align-items:end} @media (max-width:600px){.qt-tool .qt-gparow{grid-template-columns:1fr 1fr;padding-bottom:10px;border-bottom:1px dashed var(--qt-line)}} .qt-tool .qt-hrrow{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:6px} @media (max-width:600px){.qt-tool .qt-hrrow{grid-template-columns:repeat(2,minmax(0,1fr))}} .qt-tool .qt-tally{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:12px;text-align:center} .qt-tool .qt-tally input{text-align:center;font-weight:600;border-color:transparent;background:transparent} .qt-tool .qt-tally .qt-tnum{font-size:56px;font-weight:700;line-height:1.1;color:var(--qt-accent2);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none} .qt-tool .qt-tallies{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-teams{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0 0} .qt-tool .qt-team{background:var(--qt-bg);border:1px solid var(--qt-line);border-top:4px solid var(--qt-accent);border-radius:10px;padding:10px 12px} .qt-tool .qt-team h3{font-size:16px;margin:0 0 6px} .qt-tool .qt-team ol{margin:0;padding-left:1.3em;font-size:15px} .qt-tool .qt-words{font-size:22px;line-height:1.75;height:5.6em;overflow:hidden;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:10px;padding:8px 14px;margin:12px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace} .qt-tool .qt-words span{padding:1px 3px;border-radius:4px} .qt-tool .qt-words .qt-cur{background:#FEFCBF} .qt-tool .qt-words .qt-wok{color:#2F855A} .qt-tool .qt-words .qt-wbad{color:#C53030;text-decoration:underline} .qt-tool .qt-words .qt-cur.qt-wtyping{background:#FED7D7} .qt-tool .qt-wlist{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px} .qt-tool .qt-wlist span{background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:6px;padding:3px 8px;font-size:15px;font-weight:600} .qt-tool .qt-wlist sub{font-size:10px;color:var(--qt-muted);margin-left:2px} .qt-tool h3.qt-wh{font-size:17px;margin:14px 0 2px} .qt-tool input[type=range]{width:100%;accent-color:var(--qt-accent)} .qt-tool .qt-pw{display:flex;gap:8px;align-items:center;background:var(--qt-bg);border:1px solid var(--qt-line);border-radius:8px;padding:8px 10px;margin:8px 0 0} .qt-tool .qt-pw code{flex:1 1 auto;font-size:17px;word-break:break-all;background:none;padding:0;min-width:0} .qt-tool .qt-strength{height:10px;border-radius:5px;background:#CBD5E0;overflow:hidden;margin:10px 0 0} .qt-tool .qt-strength span{display:block;height:100%;width:0;transition:width .2s} .qt-tool input[type=color]{width:100%;height:48px;padding:2px;border:1px solid #CBD5E0;border-radius:8px;background:var(--qt-bg);cursor:pointer} .qt-tool .qt-swatch{height:110px;border-radius:10px;border:1px solid rgba(0,0,0,.15);margin:12px 0 0;display:flex;align-items:center;justify-content:center;gap:24px;font-size:20px;font-weight:700} .qt-tool .qt-over{color:#C53030;font-weight:700} .qt-tool .qt-drop{border:2px dashed var(--qt-accent);border-radius:10px;padding:28px 12px;text-align:center;cursor:pointer;background:var(--qt-bg);margin:0 0 12px} .qt-tool .qt-drop.qt-hover{background:#E3EEFF} .qt-tool .qt-prev{display:block;max-width:100%;max-height:380px;margin:12px auto 0;border:1px solid var(--qt-line);border-radius:8px;background:repeating-conic-gradient(#E2E8F0 0 25%,#fff 0 50%) 0 0\/16px 16px} .qt-tool .qt-lb{display:inline-flex;width:44px;height:44px;border-radius:50%;align-items:center;justify-content:center;font-weight:700;font-size:17px;background:#fff;color:#1A202C;border:2px solid var(--qt-accent);margin:3px} .qt-tool .qt-lb.qt-bonus{background:#E53E3E;color:#fff;border-color:#E53E3E} .qt-tool .qt-8{width:230px;height:230px;border-radius:50%;margin:16px auto;background:radial-gradient(circle at 35% 30%,#666,#000 62%);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.35)} .qt-tool .qt-8 span{width:116px;height:116px;border-radius:50%;background:radial-gradient(circle,#2747a8,#0b1a4a);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:700;padding:16px;box-sizing:border-box;line-height:1.25;transition:opacity .3s} .qt-tool .qt-shake{animation:qt-shake .7s} @keyframes qt-shake{0%,100%{transform:translate(0)}20%{transform:translate(-12px,4px) rotate(-6deg)}40%{transform:translate(10px,-6px) rotate(5deg)}60%{transform:translate(-8px,6px) rotate(-4deg)}80%{transform:translate(6px,-3px) rotate(3deg)}} .qt-tool .qt-grid>.qt-field{display:flex;flex-direction:column;justify-content:flex-end} .qt-tool .qt-field input[type=range]{height:46px;padding:0 10px} .qt-tool .qt-field input[type=color]{height:46px} .qt-tool .qt-drop .qt-sub{font-weight:400;font-size:14px;margin:4px 0 0} .qt-tool .qt-board{display:grid;gap:5px;margin:14px auto 0;max-width:100%;user-select:none;-webkit-user-select:none;touch-action:manipulation} .qt-tool .qt-cell{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #AEC3DB;border-radius:6px;font-weight:700;cursor:pointer;aspect-ratio:1;font-size:clamp(14px,4vw,26px);color:#1A202C;padding:0;min-width:0;font-family:inherit;line-height:1} .qt-tool .qt-cell:disabled{cursor:default} .qt-tool .qt-win{background:#C6F6D5;border-color:#38A169} .qt-tool .qt-sel{background:#BEE3F8;border-color:#3182CE} .qt-tool .qt-bad{background:#FED7D7;border-color:#E53E3E} .qt-tool select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;cursor:pointer;border:2px solid #90B4DA;font-weight:600;background-color:#fff;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5' fill='none' stroke='%232B6CB0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 14px center;background-size:14px 9px} .qt-tool select:hover{border-color:var(--qt-accent);background-color:#F4F8FD} .qt-tool select::-ms-expand{display:none} .qt-next{margin:0 0 1.75em} .qt-next .qt-next-h{font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#4A5568;margin:0 0 8px} .qt-next-g{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .qt-next-g a{display:flex;align-items:center;min-height:46px;padding:9px 12px;border:1px solid #AEC3DB;border-radius:8px;background:#F4F8FD;color:#215387;font-weight:600;font-size:15px;line-height:1.3;text-decoration:none} .qt-next-g a:hover,.qt-next-g a:focus{background:#E3EEFF;border-color:#2B6CB0;text-decoration:none} @media (max-width:600px){.qt-next-g{grid-template-columns:repeat(2,1fr)}}<\/style>\n<div class=\"qt-tool\" id=\"qt-ty\">\n<div class=\"qt-tabs\" role=\"group\" aria-label=\"Test length\"><button type=\"button\" data-qt-ty=\"30\" aria-selected=\"false\">30 s<\/button><button type=\"button\" data-qt-ty=\"60\" aria-selected=\"true\">1 min<\/button><button type=\"button\" data-qt-ty=\"120\" aria-selected=\"false\">2 min<\/button><\/div>\n<div class=\"qt-stats\">\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-ty-time\">&#8211;<\/span><span class=\"qt-lab\">Time left<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-ty-wpm\">&#8211;<\/span><span class=\"qt-lab\">WPM<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-ty-acc\">&#8211;<\/span><span class=\"qt-lab\">Accuracy<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-ty-ok\">&#8211;<\/span><span class=\"qt-lab\">Correct words<\/span><\/div>\n<div class=\"qt-stat\"><span class=\"qt-num\" id=\"qt-ty-bad\">&#8211;<\/span><span class=\"qt-lab\">Wrong words<\/span><\/div>\n<\/div>\n<div class=\"qt-words\" id=\"qt-ty-words\" aria-hidden=\"true\"><\/div>\n<p><input type=\"text\" id=\"qt-ty-in\" autocomplete=\"off\" autocapitalize=\"off\" autocorrect=\"off\" spellcheck=\"false\" placeholder=\"Click here and start typing...\" aria-label=\"Type the words here\" style=\"margin-top:10px;font-size:20px\"><\/p>\n<div class=\"qt-row\"><button type=\"button\" class=\"qt-btn qt-btn-ghost\" id=\"qt-ty-restart\">Restart<\/button><\/div>\n<div class=\"qt-result qt-roman\" id=\"qt-ty-result\" aria-live=\"polite\" style=\"min-height:0\"><\/div>\n<p class=\"qt-note\">Everything runs in your browser. Nothing you type is sent to or stored on our server.<\/p>\n<\/div>\n<p><script>(function () { function qtReady(fn) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); } else { fn(); } } function qtCopy(text, statusEl, okMsg) { function done(ok) { if (statusEl) { statusEl.textContent = ok ? (okMsg || 'Copied to clipboard.') : 'Press Ctrl+C (or Cmd+C) to copy.'; } } function fallback() { var ta = document.createElement('textarea'); ta.value = text; ta.setAttribute('readonly', ''); ta.style.position = 'fixed'; ta.style.top = '-1000px'; document.body.appendChild(ta); ta.select(); var ok = false; try { ok = document.execCommand('copy'); } catch (e) { ok = false; } document.body.removeChild(ta); done(ok); } if (navigator.clipboard) { if (window.isSecureContext) { navigator.clipboard.writeText(text).then(function () { done(true); }, fallback); return; } } fallback(); } function qtRand32() { var c = window.crypto || window.msCrypto; if (c) { if (c.getRandomValues) { var a = new Uint32Array(1); c.getRandomValues(a); return a[0]; } } return Math.floor(Math.random() * 4294967296); } function qtRandInt(range) { if (range === 4294967296) { return qtRand32(); } var limit = Math.floor(4294967296 \/ range) * range; var x = qtRand32(); while (x >= limit) { x = qtRand32(); } return x % range; } qtReady(function () { var inp = document.getElementById('qt-ty-in'); if (!inp) { return; } function $(id) { return document.getElementById(id); } var W = 'the be to of and a in that have it for not on with he as you do at this but his by from they we say her she or an will my one all would there their what so up out if about who get which go me when make can like time no just him know take people into year your good some could them see other than then now look only come its over think also back after use two how our work first well way even new want because any these give day most us great between need large often hand high place hold turn without might house world below few story light still keep thought start city tree cross farm hard early young picture letter until river car feet care second book carry took science eat room friend began idea fish mountain stop once base hear horse cut sure watch color face wood main open seem together next white children begin got walk example ease paper group always music those both mark list song leave family body talk question answer school water number sound night move right learn small every home read near spell add earth food sun four state grow study last far country plant cover point mother father write side change kind'.split(' '); var dur = 60, words = [], idx = 0, spans = [], started = false, t0 = 0, iv = 0, ok = 0, bad = 0, okChars = 0, typed = 0, typedOk = 0, done = false; function build() { words = []; for (var i = 0; 400 > i; i++) { words.push(W[qtRandInt(W.length)]); } var box = $('qt-ty-words'); box.textContent = ''; spans = []; words.forEach(function (w) { var s = document.createElement('span'); s.textContent = w; box.appendChild(s); box.appendChild(document.createTextNode(' ')); spans.push(s); }); box.scrollTop = 0; } function reset() { clearInterval(iv); idx = 0; started = false; done = false; ok = 0; bad = 0; okChars = 0; typed = 0; typedOk = 0; build(); spans[0].classList.add('qt-cur'); inp.value = ''; inp.disabled = false; $('qt-ty-time').textContent = dur + 's'; ['wpm', 'acc', 'ok', 'bad'].forEach(function (k) { $('qt-ty-' + k).textContent = '-'; }); $('qt-ty-result').textContent = ''; } function update() { var el = (performance.now() - t0) \/ 1000, left = Math.max(0, dur - el); $('qt-ty-time').textContent = Math.ceil(left) + 's'; if (el > 1) { $('qt-ty-wpm').textContent = Math.round(okChars \/ 5 \/ (el \/ 60)); } $('qt-ty-acc').textContent = typed ? Math.round(typedOk \/ typed * 100) + '%' : '-'; $('qt-ty-ok').textContent = ok; $('qt-ty-bad').textContent = bad; if (0 >= left) { finish(); } } function finish() { clearInterval(iv); done = true; inp.disabled = true; var wpm = Math.round(okChars \/ 5 \/ (dur \/ 60)), acc = typed ? Math.round(typedOk \/ typed * 100) : 0; $('qt-ty-wpm').textContent = wpm; $('qt-ty-time').textContent = '0s'; var lvl = wpm >= 80 ? 'Excellent, professional-level speed.' : wpm >= 60 ? 'Fast, well above average.' : wpm >= 40 ? 'Average typing speed.' : wpm >= 25 ? 'Below average; practice will help.' : 'Beginner. Keep practising.'; $('qt-ty-result').textContent = wpm + ' WPM, ' + acc + '% accuracy. ' + lvl; } inp.addEventListener('input', function () { if (done) { return; } if (!started) { started = true; t0 = performance.now(); iv = setInterval(update, 200); } var v = inp.value, cur = spans[idx]; if (\/\\s$\/.test(v)) { var w = v.trim(); if (w.length) { typed += w.length + 1; if (w === words[idx]) { ok++; okChars += w.length + 1; typedOk += w.length + 1; cur.className = 'qt-wok'; } else { bad++; cur.className = 'qt-wbad'; var same = 0; for (var i = 0; Math.min(w.length, words[idx].length) > i; i++) { if (w[i] === words[idx][i]) { same++; } } typedOk += same; } idx++; inp.value = ''; spans[idx].classList.add('qt-cur'); var box = $('qt-ty-words'); if (spans[idx].offsetTop - box.offsetTop > box.scrollTop + 40) { box.scrollTop = spans[idx].offsetTop - box.offsetTop - 8; } } else { inp.value = ''; } update(); return; } cur.classList.toggle('qt-wtyping', words[idx].indexOf(v) !== 0); }); Array.prototype.forEach.call(document.querySelectorAll('[data-qt-ty]'), function (b) { b.addEventListener('click', function () { dur = parseInt(b.getAttribute('data-qt-ty'), 10); Array.prototype.forEach.call(document.querySelectorAll('[data-qt-ty]'), function (x) { x.setAttribute('aria-selected', x === b ? 'true' : 'false'); }); reset(); inp.focus(); }); }); $('qt-ty-restart').addEventListener('click', function () { reset(); inp.focus(); }); reset(); }); })();<\/script><\/p>\n<div class=\"qt-next\">\n<p class=\"qt-next-h\">Try another free tool<\/p>\n<div class=\"qt-next-g\"><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/cps-test\/\">CPS Test<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/reaction-time-test\/\">Reaction Time Test<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/word-unscrambler\/\">Word Unscrambler<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/tally-counter\/\">Tally Counter<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/tic-tac-toe\/\">Tic Tac Toe<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/memory-game\/\">Memory Game<\/a><\/div>\n<\/div>\n<p><strong>Quick answer:<\/strong> Click the box under the words and start typing. Press Space after each word. When the timer ends you get your speed in WPM (words per minute) and your accuracy. The average adult types about 40 WPM.<\/p>\n<h2>How the typing test works<\/h2>\n<ol>\n<li>Pick a length: 30 seconds for a quick check, 1 minute for the standard test, or 2 minutes for a steadier result.<\/li>\n<li>Click the input box and type the highlighted word. Press Space to move on. A word turns green if it is right and red if it has a mistake.<\/li>\n<li>The word goes pink while you type if you have already made a mistake, so you can fix it with Backspace before pressing Space.<\/li>\n<li>When time runs out, your WPM and accuracy are shown. Click <strong>Restart<\/strong> for a new set of words.<\/li>\n<\/ol>\n<h2>How WPM is calculated<\/h2>\n<p>Typing speed counts a &#8220;word&#8221; as 5 characters, including spaces, so long and short words are treated fairly. This test counts only correctly typed words: correct characters \u00f7 5 \u00f7 minutes. Mistyped words don&#8217;t add to your speed, so accuracy matters as much as speed. Accuracy is the share of the characters you typed that were correct.<\/p>\n<h2>What is a good typing speed?<\/h2>\n<table class=\"qt-ref\">\n<thead>\n<tr>\n<th>WPM<\/th>\n<th>Level<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Under 25<\/td>\n<td>Beginner, often hunt-and-peck<\/td>\n<\/tr>\n<tr>\n<td>25 to 40<\/td>\n<td>Below average to average<\/td>\n<\/tr>\n<tr>\n<td>40 to 60<\/td>\n<td>Average to good; fine for most office work<\/td>\n<\/tr>\n<tr>\n<td>60 to 80<\/td>\n<td>Fast; typical of experienced touch typists<\/td>\n<\/tr>\n<tr>\n<td>80 and up<\/td>\n<td>Very fast; transcription and competitive typists<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Job adverts for data entry or admin roles often ask for 40 to 60 WPM with high accuracy.<\/p>\n<h2>How to type faster<\/h2>\n<ul>\n<li><strong>Learn touch typing:<\/strong> keep your fingers on the home row (ASDF and JKL;) and don&#8217;t look at the keys.<\/li>\n<li><strong>Accuracy first:<\/strong> slow down until you make few mistakes; speed follows.<\/li>\n<li><strong>Practise little and often:<\/strong> 10 to 15 minutes a day beats an hour once a week.<\/li>\n<li><strong>Good posture:<\/strong> wrists level, screen at eye height, feet flat.<\/li>\n<li><strong>A comfortable keyboard<\/strong> helps; check it with our <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/keyboard-tester\/\">keyboard tester<\/a>.<\/li>\n<\/ul>\n<p>Count the words in your own writing with the <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/word-counter\/\">word counter<\/a>.<\/p>\n<h2>FAQ<\/h2>\n<h3>Does the typing test work on phones?<\/h3>\n<p>Yes, but phone typing speeds are lower, and autocorrect can interfere. A physical keyboard gives the truest result.<\/p>\n<h3>Are my results saved?<\/h3>\n<p>No. Everything happens on this page only.<\/p>\n<h2>More free tools<\/h2>\n<div class=\"qt-cards\"><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/cps-test\/\"><strong>CPS Test<\/strong><span>How many clicks per second can you do?<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/reaction-time-test\/\"><strong>Reaction Time Test<\/strong><span>Click when it turns green and see your reaction speed.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/word-unscrambler\/\"><strong>Word Unscrambler<\/strong><span>Find words from scrambled letters for word games.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/tally-counter\/\"><strong>Tally Counter<\/strong><span>Click or tap to count people, laps or anything.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/tic-tac-toe\/\"><strong>Tic Tac Toe<\/strong><span>Play X and O against the computer or a friend.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/memory-game\/\"><strong>Memory Game<\/strong><span>Flip cards and find all the matching pairs.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/hangman\/\"><strong>Hangman<\/strong><span>Guess the word one letter at a time.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/word-search\/\"><strong>Word Search<\/strong><span>Find hidden words in themed puzzles.<\/span><\/a><a class=\"qt-card\" href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/sudoku\/\"><strong>Sudoku<\/strong><span>Easy to expert puzzles with notes and hints.<\/span><\/a><\/div>\n<p>See all of them on the <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/\">QuickOnlineTips free online tools<\/a> page and play our <a href=\"https:\/\/www.quickonlinetips.com\/archives\/games\/\">free online games<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Take this free typing test to check your typing speed in words per minute (WPM) and accuracy. Choose 30 seconds, 1 minute or 2 minutes, click the box and start typing the words shown. The timer starts with your first key and your results appear when time runs out. 30 s1 min2 min &#8211;Time left&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":65595,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-65752","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/65752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/comments?post=65752"}],"version-history":[{"count":3,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/65752\/revisions"}],"predecessor-version":[{"id":66469,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/65752\/revisions\/66469"}],"up":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/65595"}],"wp:attachment":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media?parent=65752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}