1<!DOCTYPE html><html lang="en-US" prefix="og: https://ogp.me/ns#"><head><meta charset="UTF-8">
1<script>/* 7ESL local-network guard */ 2(function(){function L(u){if(typeof u!=='string')return false;var s=u.toLowerCase();return s.indexOf('//localhost')>-1||s.indexOf('//127.0.0.1')>-1||s.indexOf('//0.0.0.0')>-1||s.indexOf('//[::1]')>-1||s.indexOf('//192.168.')>-1||s.indexOf('//10.0.')>-1;} 3if(window.fetch){var f=window.fetch.bind(window);window.fetch=function(i,o){var u=(typeof i==='string')?i:(i&&i.url);if(L(u)){return Promise.resolve(new Response('',{status:204}));}return f(i,o);};} 4if(window.XMLHttpRequest){var op=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(m,u){if(typeof u==='string'&&L(u)){arguments[1]='about:blank';}return op.apply(this,arguments);};}})();</script>
4
4<script id="esl-aud-js">(function(d){try{var e=d.documentElement;if(e.getAttribute("data-aud"))return;var m=/(?:^|;\s*)esl_aud=([a-z]{1,8})/.exec(d.cookie||"");e.setAttribute("data-aud",{teacher:"teacher",learner:"learner",kid:"kid",skip:"none"}[m?m[1]:""]||"ask");}catch(x){}})(document);</script>
4 <meta name="viewport" content="width=device-width, initial-scale=1"><title>Articles • 7ESL</title><meta name="description" content="Discover the essentials of using articles in English grammar with our comprehensive guide. Learn the correct application of 'a,' 'an,' and 'the' to enhance your writing and speaking skills."/><meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/><link rel="canonical" href="https://7esl.com/category/grammar/articles/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Articles • 7ESL" /><meta property="og:description" content="Discover the essentials of using articles in English grammar with our comprehensive guide. Learn the correct application of 'a,' 'an,' and 'the' to enhance your writing and speaking skills." /><meta property="og:url" content="https://7esl.com/category/grammar/articles/" /><meta property="og:site_name" content="7ESL" /><meta property="article:publisher" content="https://www.facebook.com/7ESLAI" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Articles • 7ESL" /><meta name="twitter:description" content="Discover the essentials of using articles in English grammar with our comprehensive guide. Learn the correct application of 'a,' 'an,' and 'the' to enhance your writing and speaking skills." /><meta name="twitter:label1" content="Posts" /><meta name="twitter:data1" content="5" />
4<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://7esl.com/category/grammar/articles/#webpage","name":"Articles","url":"https://7esl.com/category/grammar/articles/","inLanguage":"en-US","isPartOf":{"@type":"WebSite","@id":"https://7esl.com/#website","name":"7ESL","url":"https://7esl.com/"},"publisher":{"@type":"Organization","name":"7ESL","url":"https://7esl.com/"}},{"@type":"BreadcrumbList","@id":"https://7esl.com/category/grammar/articles/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://7esl.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://7esl.com/knowledge-base/","name":"Knowledge Base"}},{"@type":"ListItem","position":"3","item":{"@id":"https://7esl.com/category/grammar/","name":"Grammar"}},{"@type":"ListItem","position":"4","item":{"@id":"https://7esl.com/category/grammar/articles/","name":"Articles"}}]}]}</script>
4 <link rel='dns-prefetch' href='//scripts.mediavine.com' /><link rel='dns-prefetch' href='//scripts.pubnation.com' /><link rel='dns-prefetch' href='//keywords.pubnation.com' /><link href='https://scripts.pubnation.com' crossorigin='anonymous' rel='preconnect' /><link href='https://keywords.pubnation.com' crossorigin='anonymous' rel='preconnect' /><link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /><link href='https://fonts.googleapis.com' crossorigin rel='preconnect' /><style id="wp-img-auto-sizes-contain-inline-css">img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 5/*# sourceURL=wp-img-auto-sizes-contain-inline-css */</style><style id="global-styles-inline-css">:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--contrast: var(--contrast);--wp--preset--color--contrast-2: var(--contrast-2);--wp--preset--color--contrast-3: var(--contrast-3);--wp--preset--color--base: var(--base);--wp--preset--color--base-2: var(--base-2);--wp--preset--color--base-3: var(--base-3);--wp--preset--color--accent: var(--accent);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
5--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--quicksand: Quicksand, sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-contrast-color{color: var(--wp--preset--color--contrast) !important;}.has-contrast-2-color{color: var(--wp--preset--color--contrast-2) !important;}.has-contrast-3-color{color: var(--wp--preset--color--contrast-3) !important;}.has-base-color{color: var(--wp--preset--color--base) !important;}.has-base-2-color{color: var(--wp--preset--color--base-2) !important;}.has-base-3-color{color: var(--wp--preset--color--base-3) !important;}.has-accent-color{color: var(--wp--preset--color--accent) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-contrast-background-color{background-color: var(--wp--preset--color--contrast) !important;}.has-contrast-2-background-color{background-color: var(--wp--preset--color--contrast-2) !important;}.has-contrast-3-background-color{background-color: var(--wp--preset--color--contrast-3) !important;}.has-base-background-color{background-color: var(--wp--preset--color--base) !important;}.has-base-2-background-color{background-color: var(--wp--preset--color--base-2) !important;}.has-base-3-background-color{background-color: var(--wp--preset--color--base-3) !important;}.has-accent-background-color{background-color: var(--wp--preset--color--accent) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-contrast-border-color{border-color: var(--wp--preset--color--contrast) !important;}.has-contrast-2-border-color{border-color: var(--wp--preset--color--contrast-2) !important;}.has-contrast-3-border-color{border-color: var(--wp--preset--color--contrast-3) !important;}.has-base-border-color{border-color: var(--wp--preset--color--base) !important;}.has-base-2-border-color{border-color: var(--wp--preset--color--base-2) !important;}.has-base-3-border-color{border-color: var(--wp--preset--color--base-3) !important;}.has-accent-border-color{border-color: var(--wp--preset--color--accent) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
5.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-quicksand-font-family{font-family: var(--wp--preset--font-family--quicksand) !important;} 6/*# sourceURL=global-styles-inline-css */</style><link rel='stylesheet' id='generate-google-fonts-css' href='https://fonts.googleapis.com/css?family=Quicksand:300,regular,500,700&display=swap&ver=3.6.1' media='all' />
6<script type="text/javascript">window._nslDOMReady = (function () { 7 const executedCallbacks = new Set(); 8 9 return function (callback) { 10 /** 11 * Third parties might dispatch DOMContentLoaded events, so we need to ensure that we only run our callback once! 12 */ 13 if (executedCallbacks.has(callback)) return; 14 15 const wrappedCallback = function () { 16 if (executedCallbacks.has(callback)) return; 17 executedCallbacks.add(callback); 18 callback(); 19 }; 20 21 if (document.readyState === "complete" || document.readyState === "interactive") { 22 wrappedCallback(); 23 } else { 24 document.addEventListener("DOMContentLoaded", wrappedCallback); 25 } 26 }; 27 })();</script>
27
27<script id="breeze-prefetch-js-extra">var breeze_prefetch = {"local_url":"https://7esl.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]}; 28//# sourceURL=breeze-prefetch-js-extra</script>
28
28<script id="mv-script-wrapper-js" async="async" fetchpriority="high" data-noptimize="1" data-cfasync="false" data-mv-mcp="2.10.12" src="https://scripts.mediavine.com/tags/7esl.js?ver=7.1.2"></script>
28 <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://7esl.com/xmlrpc.php?rsd" /><link rel="preload" as="font" type="font/woff2" href="https://7esl.com/wp-content/uploads/fonts/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o18S0wx40QDw.woff2" crossorigin><link rel="icon" href="https://7esl.com/wp-content/uploads/2023/03/cropped-7ESL-Favicon-150x150.png" sizes="32x32" /><link rel="icon" href="https://7esl.com/wp-content/uploads/2023/03/cropped-7ESL-Favicon-300x300.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://7esl.com/wp-content/uploads/2023/03/cropped-7ESL-Favicon-300x300.png" /><meta name="msapplication-TileImage" content="https://7esl.com/wp-content/uploads/2023/03/cropped-7ESL-Favicon-300x300.png" />
28<script id="sevenesl-avatar-fallback">document.addEventListener('DOMContentLoaded', function () { 29 var fallback = 'https://7esl.com/wp-content/plugins/7esl-core/assets/images/default_avatar.png'; 30 document.querySelectorAll('img.avatar, .forum-avatar-link img, .wrapAvatar img.avatarTutor, img.avatarTutor, img.avatarUser').forEach(function (img) { 31 img.addEventListener('error', function handleError() { 32 if (img.getAttribute('src') !== fallback) { 33 img.setAttribute('src', fallback); 34 } 35 }, { once: true }); 36 }); 37 });</script>
37
37<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-js-jquery-jquery.min-6836d82c2675.js?ver=1790912477"></script>
37<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-js-js-front-end-breeze-prefetch-links.min-3c10be81bf6e.js?ver=1790912477"></script>
37<link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_1-a0063705c9d5.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_2-eda20ac0bec8.css?ver=1790912477" rel="stylesheet" /><style type="text/css" media="all">img[width][height]{height:auto}.gb-button,.tag,.rank-math-breadcrumb,.breadcrumb,.ez-toc-title,.ez-toc-title-container{min-height:1px}</style><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-thinklab-8a91727a92b2.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-forum-redesign-e34b5a59e8a2.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-fonts-inter-inter-6b77128a995a.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_4-9077cbb97de5.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_5-e9a280b7c847.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-style-18c2a1dc22eb.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-plyr-v3.7.2-e4f19c2644a6.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-novashare-css-style.min-90542393b44d.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_6-500e0b834c6d.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-css-components-widget-areas.min-b6b59ce9e554.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-main.min-6e916044c122.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_7-fca786e8beb3.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-tests-assets-tests-cd479be12258.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-esl-toc-4d563c24623c.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-tests-assets-article-tabs-8c542f21a2a4.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-site-chrome-f2b07700fe68.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-esl-ui-818a13127da5.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-ui-archive-8bb71337c7fe.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-assets-css-ui-side-46b7ad784826.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-functions-css-featured-images.min-d894f50a61d6.
37css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-sevenesl-ui-fixes-8e8fdadc27b8.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-7esl-core-assets-category-editorial-cdaee314d5f1.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-functions-css-navigation-branding-flex.min-75b5071a0a09.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_8-c66a0c78d33b.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_9-ad4d0ae8724b.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_10-2ac4270b1048.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_11-4e002ea9bc5b.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_12-177401c7150a.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_13-650e59be5ed8.css?ver=1790912477" rel="stylesheet" /><link type="text/css" media="all" href="https://7esl.com/wp-content/cache/breeze-minification/css/breeze_category-grammar-articles-1-112735-inline_14-0c72a66d8df5.css?ver=1790912477" rel="stylesheet" /></head><body class="archive category category-articles category-37395 wp-custom-logo wp-embed-responsive wp-theme-generatepress escx-active post-image-below-header post-image-aligned-center sticky-menu-slide sticky-enabled desktop-sticky-menu right-sidebar nav-float-right separate-containers header-aligned-left dropdown-hover"><div class="escx-topbar"><div class="escx-wrap"><div class="escx-topbar__left"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#f5a623" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20"/></svg> <span>Trusted by 10M+ learners worldwide — free lessons, tools & games</span></div><div class="escx-topbar__right"> <a href="https://7esl.com/forum/">Forums</a> <a href="https://7esl.com/app/">Download App</a> <a href="https://7esl.com/membership/?src=topbar_adfree" class="escx-topbar__pill escx-topbar__pill--af">Go ad-free</a> <a href="https://7esl.com/membership/?src=topbar" class="escx-topbar__pill escx-topbar__pill--up">â¡ Go Pro</a> <a href="https://7esl.com/tutor-register/" class="escx-topbar__pill" data-aud-hide="learner kid ask none">â Become a Tutor</a></div></div></div><header class="escx" id="escxHeader"><div class="escx-wrap escx__bar"> <a href="https://7esl.com/" class="escx-logo"> <img loading="lazy" src="https://7esl.com/wp-content/plugins/7esl-core/assets/images/logo-7esl-dark.svg" alt="7ESL" width="131" height="34" 38onerror="this.style.display='none';this.nextElementSibling.style.display='inline-flex'"> <span style="display:none;align-items:center;gap:8px"><span class="escx-logo__mark"><svg width="22" height="22" viewBox="0 0 24 24" fill="none"><path d="M3 7l9-4 9 4-9 4-9-4z" fill="#fff"/><path d="M7 10v5c0 1.5 2.2 2.5 5 2.5s5-1 5-2.5v-5" stroke="#fff" stroke-width="1.6" fill="none"/></svg></span>7<b>ESL</b></span> </a><nav class="escx-nav" aria-label="Primary"><div class="escx-nav__item"> <a href="https://7esl.com/courses/">Learn <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:880px"><div class="escx-mega__grid" style="grid-template-columns:1.5fr 1fr 1fr"><div class="escx-courses"><div class="escx-col__h">Courses <span class="escx-badge">NEW</span></div><div class="escx-courses__g"> <a class="escx-course" href="https://7esl.com/courses/phonics/"><span class="escx-course__tt">Phonics</span><span class="escx-course__ds">Letters, sounds & first reading</span></a><a class="escx-course" href="https://7esl.com/courses/cambridge-starters/"><span class="escx-course__tt">Pre A1 Starters <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · Pre A1 · Unit 1 free</span></a><a class="escx-course" href="https://7esl.com/courses/cambridge-movers/"><span class="escx-course__tt">A1 Movers <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · A1 · Unit 1 free</span></a><a class="escx-course" href="https://7esl.com/courses/cambridge-flyers/"><span class="escx-course__tt">A2 Flyers <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · A2 · Unit 1 free</span></a><a class="escx-course" href="https://7esl.com/courses/cambridge-a2-key-for-schools/"><span class="escx-course__tt">A2 Key for Schools <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · A2 · Unit 1 free</span></a><a class="escx-course" href="https://7esl.com/courses/cambridge-b1-preliminary-for-schools/"><span class="escx-course__tt">B1 Preliminary for Schools <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · B1 · Unit 1 free</span></a><a class="escx-course" href="https://7esl.com/courses/b2-first/"><span class="escx-course__tt">B2 First <span class="escx-pro">PRO</span></span><span class="escx-course__ds">Cambridge · B2 · Unit 1 free</span></a></div> <a class="escx-courses__all" href="https://7esl.com/courses/">All courses →</a></div><div><div class="escx-col__h">
38Lessons</div> <a class="escx-mlink" href="https://7esl.com/category/grammar/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Grammar</span><span class="escx-mlink__ds">Rules, tenses & structure</span></span></a><a class="escx-mlink" href="https://7esl.com/category/vocabulary/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Vocabulary</span><span class="escx-mlink__ds">Word lists by topic</span></span></a><a class="escx-mlink" href="https://7esl.com/category/writing/"><span class="escx-mlink__ic">â</span><span><span class="escx-mlink__tt">Writing Guides</span><span class="escx-mlink__ds">Essays, emails & style</span></span></a><a class="escx-mlink" href="https://7esl.com/category/idioms/"><span class="escx-mlink__ic">ð¡</span><span><span class="escx-mlink__tt">Idioms</span><span class="escx-mlink__ds">Common expressions</span></span></a><a class="escx-mlink" href="https://7esl.com/category/speaking/pronunciation/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Pronunciation</span><span class="escx-mlink__ds">Sounds & stress</span></span></a></div><div><div class="escx-col__h">More topics</div> <a class="escx-mlink" href="https://7esl.com/category/slang/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Slang</span><span class="escx-mlink__ds">Everyday informal English</span></span></a><a class="escx-mlink" href="https://7esl.com/category/business-english/"><span class="escx-mlink__ic">ð¼</span><span><span class="escx-mlink__tt">Business English</span><span class="escx-mlink__ds">Workplace & professional</span></span></a><a class="escx-mlink" href="https://7esl.com/category/visual-vocabulary/"><span class="escx-mlink__ic">ð¨</span><span><span class="escx-mlink__tt">Visual Vocabulary</span><span class="escx-mlink__ds">Learn words with pictures</span></span></a><a class="escx-mlink" href="https://7esl.com/category/american-and-british-english/"><span class="escx-mlink__ic">ð¬ð§</span><span><span class="escx-mlink__tt">British vs. American</span><span class="escx-mlink__ds">Spelling & usage differences</span></span></a><a class="escx-mlink" href="https://7esl.com/category/words-list/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Words List</span><span class="escx-mlink__ds">Curated word collections</span></span></a></div></div><div class="escx-mega__foot"><span>Thousands of free lessons on grammar, vocabulary, idioms & more</span><a href="https://7esl.com/knowledge-base/">Browse all topics →</a></div></div></div><div class="escx-nav__item"> <a href="https://7esl.com/listening/">Practice <span class="escx-badge">NEW</span> <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:600px"><div class="escx-mega__grid" style="grid-template-columns:1.25fr 1fr"><div><div class="escx-col__h">Practise the 4 skills</div> <a class="escx-mlink" href="https://7esl.com/reading/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Reading</span><span class="escx-mlink__ds">Read short texts and answer questions</span></span></a><a class="escx-mlink" href="https://7esl.com/listening/"><span class="escx-mlink__ic">ð§</span><span><span class="escx-mlink__tt">Listening</span><span class="escx-mlink__ds">Short scenes, picture tasks & dictation</span></span></a><a class="escx-mlink" href="https://7esl.com/speaking/"><span class="escx-mlink__ic">ð¤</span><span><span class="escx-mlink__tt">Speaking</span><span class="escx-mlink__ds">Repeat, shadow & role-play out loud</span></span></a><a class="escx-mlink" href="https://7esl.com/writing-practice/"><span class="escx-mlink__ic">â</span><span><span class="escx-mlink__tt">Writing</span><span class="escx-mlink__ds">From first sentences to emails & essays</span></span></a></div><div class="escx-feat" style="background:linear-gradient(160deg,#6d28d9,#4c1d95)"><div><h4>Learn, then practise</h4><p>Short daily practice at your level. Every activity earns XP and shows on your progress report.</p></div> <a class="escx-feat__cta" href="https://7esl.com/listening/">Start practising →</a></div></div></div></div><div class="escx-nav__item"> <a href="https://7esl.com/tests/">Tests <span class="escx-badge escx-badge--hot">HOT</span> <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:520px"><div class="escx-mega__grid" style="grid-template-columns:1.15fr 1fr"><div><div class="escx-col__h">Browse tests</div> <a class="escx-mlink" href="https://7esl.com/english-level-test/"><span class="escx-mlink__ic">ð¯</span><span><span class="escx-mlink__tt">Level Tests</span><span class="escx-mlink__ds">Find your CEFR level (A1–C2)</span></span></a><a class="escx-mlink" href="https://7esl.com/exams/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Exam Practice</span><span class="escx-mlink__ds">IELTS, TOEFL, Cambridge & more</span></span></a><a class="escx-mlink" href="https://7esl.com/practice/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Practice Tests</span><span class="escx-mlink__ds">By skill, topic & level</span></span></a></div><div class="escx-feat" style="background:linear-gradient(160deg,#163C66,#0B2540)"><div><h4>
38Exam Simulator</h4><p>Timed, auto-marked papers with instant scores, model answers & XP.</p></div> <a class="escx-feat__cta" href="https://7esl.com/exams/">Start a mock exam →</a></div></div></div></div><div class="escx-nav__item"> <a href="https://7esl.com/tools/">Tools <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:560px"><div class="escx-mega__grid" style="grid-template-columns:1fr 1fr"><div><div class="escx-col__h">Learn & write</div> <a class="escx-mlink" href="https://7esl.com/learning-tools/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Learning Tools</span><span class="escx-mlink__ds">Flashcards, vocabulary & IELTS practice</span></span></a><a class="escx-mlink" href="https://7esl.com/writing-tools/"><span class="escx-mlink__ic">â</span><span><span class="escx-mlink__tt">Writing Tools</span><span class="escx-mlink__ds">Grammar checker, paraphraser, summarizer</span></span></a><a class="escx-mlink" href="https://7esl.com/word-tools/"><span class="escx-mlink__ic">ð²</span><span><span class="escx-mlink__tt">Word Tools</span><span class="escx-mlink__ds">Wordle, anagram & scrabble solvers</span></span></a><a class="escx-mlink" href="https://7esl.com/picture-vocabulary/"><span class="escx-mlink__ic">ð¨</span><span><span class="escx-mlink__tt">Picture Vocabulary</span><span class="escx-mlink__ds">Learn vocabulary with images</span></span></a></div><div><div class="escx-col__h">Teaching & speech</div> <a class="escx-mlink" href="https://7esl.com/teacher-tools/"><span class="escx-mlink__ic">ð«</span><span><span class="escx-mlink__tt">Teacher Tools</span><span class="escx-mlink__ds">Worksheets, flashcards & bingo</span></span></a><a class="escx-mlink" href="https://7esl.com/how-to-pronounce/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Pronunciation Tools</span><span class="escx-mlink__ds">Say any word, name or brand</span></span></a><a class="escx-mlink" href="https://7esl.com/spelling-tools/"><span class="escx-mlink__ic">ð </span><span><span class="escx-mlink__tt">Spelling Tools</span><span class="escx-mlink__ds">NATO alphabet, misspellings & more</span></span></a></div></div><div class="escx-mega__foot"><span>80+ free English tools — no signup needed</span><a href="https://7esl.com/tools/">See all tools →</a></div></div></div><div class="escx-nav__item"> <a href="https://7esl.com/games/">Games <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:560px"><div class="escx-mega__grid" style="grid-template-columns:1fr 1fr 1fr"><div><div class="escx-col__h">Categories</div> <a class="escx-mlink" href="https://7esl.com/word-games/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Word Games</span><span class="escx-mlink__ds">Wordle, Spelling Bee, Anagram</span></span></a><a class="escx-mlink" href="https://7esl.com/vocabulary-games/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Vocabulary Games</span><span class="escx-mlink__ds">Match, flashcards, memory</span></span></a></div><div><div class="escx-col__h"> </div> <a class="escx-mlink" href="https://7esl.com/grammar-games/"><span class="escx-mlink__ic">ð§</span><span><span class="escx-mlink__tt">Grammar Games</span><span class="escx-mlink__ds">Cloze, sentence builder</span></span></a><a class="escx-mlink" href="https://7esl.com/kids-games/"><span class="escx-mlink__ic">ð§¸</span><span><span class="escx-mlink__tt">Kids Games</span><span class="escx-mlink__ds">Fun games for ages 4–9</span></span></a><a class="escx-mlink" href="https://7esl.com/pronunciation-games/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Pronunciation & Spelling</span><span class="escx-mlink__ds">Listen, choose, spell</span></span></a></div><div class="escx-feat" style="background:linear-gradient(160deg,#F5A623,#D98A00);color:#3a2700"><div><h4 style="color:#3a2700">Earn XP & Badges</h4><p style="color:#5a3f00">Every game scores XP, levels you up and unlocks shields.</p></div> <a class="escx-feat__cta" style="background:#0B2540;color:#fff" href="https://7esl.com/games/">Play all games →</a></div></div></div></div><div class="escx-nav__item"> <a href="https://7esl.com/teacher-tools/">For Teachers <svg class="escx-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M6 9l6 6 6-6"/></svg></a><div class="escx-mega" style="min-width:640px"><div class="escx-mega__grid" style="grid-template-columns:1fr 1fr"><div><div class="escx-col__h">Classroom material</div> <a class="escx-mlink" href="https://7esl.com/category/esl-resources/worksheets/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">Worksheets</span><span class="escx-mlink__ds">Printable, ready for class</span></span></a><a class="escx-mlink" href="https://7esl.com/category/esl-resources/esl-pdfs/"><span class="escx-mlink__ic">ð</span><span><span class="escx-mlink__tt">PDF Books</span><span class="escx-mlink__ds">Free downloadable books</span></span></a><a class="escx-mlink" href="https://7esl.com/picture-vocabulary/"><span class="escx-mlink__ic">ð¨</span><span><span class="escx-mlink__tt">Picture Vocabulary</span><span class="escx-mlink__ds">Flashcard images by topic</span></span></a><a class="escx-mlink" href="https://7esl.com/kids-games/"><span class="escx-mlink__ic">ð§¸</span><span><span class="escx-mlink__tt">Kids Games</span><span class="escx-mlink__ds">For young learners</span></span></a></div><div><div class="escx-col__h">Your tools</div> <a class="escx-mlink" href="https://7esl.com/teacher-tools/"><span class="escx-mlink__ic">ð«</span><span><span class="escx-mlink__tt">Teacher Tools</span><span class="escx-mlink__ds">Worksheet makers, bingo, flashcards</span></span></a><a class="escx-mlink" data-aud-hide="learner kid ask none" href="https://7esl.com/tutor-register/"><span class="escx-mlink__ic">â</span><span><span class="escx-mlink__tt">Become a Tutor</span><span class="escx-mlink__ds">Teach 1-on-1 and get paid</span></span></a><a class="escx-mlink" href="https://7esl.com/tutors/"><span class="escx-mlink__ic">ð¨âð«</span><span><span class="escx-mlink__tt">Find a Tutor</span><span class="escx-mlink__ds">1-on-1 lessons via Google Meet</span></span></a></div></div><div class="escx-mega__foot"><span>Free worksheet makers — no signup needed</span><a href="https://7esl.com/teacher-tools/">All teacher tools →</a></div></div></div></nav><div class="escx__spacer"></div><div class="escx__actions"> <button class="escx-icbtn" id="escxSearchBtn" aria-label="Search"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.3-4.3"/></svg></button> <a class="escx-btn escx-btn--ghost" href="https://7esl.com/login/">Login</a> <a class="escx-btn escx-btn--pri" href="https://7esl.com/signup/">Sign up free</a></div> <button class="escx-burger" id="escxBurger" aria-label="Open menu"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#163C66" stroke-width="2.2"><path d="M3 6h18M3 12h18M3 18h18"/></svg></button></div><div class="escx-search" id="escxSearch"><form class="escx-wrap" role="search" method="get" action="https://7esl.com/"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#5B6B79" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.3-4.3"/></svg> <input type="search" name="s" placeholder="Search lessons, tools, games, exams…"> <button class="escx-btn escx-btn--pri" type="submit">Search</button></form></div></header> <a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a><div class="page-hero"><div class="inside-page-hero grid-container grid-parent"><meta http-equiv="Content-Security-Policy" content="block-all-mixed-content" /><meta name="google-site-verification" content="AGR3MNmtsz8nyGh7BE2vXcg-tc27_0UNpdbI52vqJRM" /><meta name="p:domain_verify" content="310d9a8637368dc8a09c3b4d82add598"/>
vendor: 64 bytes, line 38
38 <script async src="https://www.googletagmanager.com/gtag/js?id=
38G-D3Z7V8R0BW
vendor: 12 bytes, line 38
38"></script>
38<script>
vendor: 134 bytes, lines 38-42
38window.dataLayer = window.dataLayer || []; 39 function gtag(){dataLayer.push(arguments);} 40 gtag('js', new Date()); 41 42 gtag('config', '
42G-D3Z7V8R0BW
vendor: 3 bytes, line 42
42');
42</script>
42 </div></div><div class="site grid-container container hfeed" id="page"><div class="site-content" id="content"><div id="primary" class="content-area"><main id="main" class="site-main eu ar ar--cat eu-t--grammar"><div class="sevenesl-archive-breadcrumbs ar-crumbs"><nav class="sevenesl-breadcrumbs" aria-label="Breadcrumbs"><nav aria-label="breadcrumbs" class="rank-math-breadcrumb"><p><a href="https://7esl.com">Home</a><span class="separator"> ⺠</span><a href="https://7esl.com/knowledge-base/">Knowledge Base</a><span class="separator"> ⺠</span><a href="https://7esl.com/category/grammar/">Grammar</a><span class="separator"> ⺠</span><span class="last">Articles</span></p></nav></nav></div><section class="ar-hero ar-box eu-tint has-landing-content"><div class="ar-hero__top"> <span class="eu-ic eu-t--grammar eu-ic--e eu-ic--lg ar-hero__ic" aria-hidden="true">ð</span><div class="ar-hero__t"> <a class="ar-up" href="https://7esl.com/category/grammar/"> <span class="ar-up__i" aria-hidden="true">â£</span> <span>Grammar</span> </a><h1 class="page-title ar-title">Articles</h1></div></div><div class="esl-cat-tool-cta" style="display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:16px 0 4px;padding:14px 18px;border:1px solid #bae6fd;border-radius:14px;background:linear-gradient(135deg,#f0f9ff,#ecfeff)"><div style="flex:1 1 260px;min-width:0"><div style="font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0369a1;margin-bottom:2px">Free tool for this topic</div><div style="font-size:17px;font-weight:800;color:#0f172a;line-height:1.25">Grammar Checker</div><div style="font-size:13px;color:#475569;margin-top:3px">Check your writing for grammar, spelling and punctuation mistakes.</div></div><a class="esl-cat-tool-cta__btn" href="https://7esl.com/grammar-check/" style="flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:11px 20px;border-radius:999px">Open the tool →</a></div><div class="ar-stats" aria-label="Category overview"><div class="ar-stat"><span class="ar-stat__e" aria-hidden="true">ð</span><strong>5</strong><span>Articles</span></div><div class="ar-stat"><span class="ar-stat__e" aria-hidden="true">ð</span><strong>0</strong><span>Subcategories</span></div><div class="sevenesl-level-tags-strip" aria-label="Levels"><div class="sevenesl-level-tags-strip__items"> <a 43class="sevenesl-level-tag-pill sevenesl-level-tag-pill--a" 44href="https://7esl.com/courses/a1-english/" 45> <span>A1</span> </a> <a 46class="sevenesl-level-tag-pill sevenesl-level-tag-pill--a" 47href="https://7esl.com/courses/a2-english/" 48> <span>A2</span> </a> <a 49class="sevenesl-level-tag-pill sevenesl-level-tag-pill--b" 50href="https://7esl.com/courses/b1-english/" 51> <span>B1</span> </a> <a 52class="sevenesl-level-tag-pill sevenesl-level-tag-pill--b" 53href="https://7esl.com/courses/b2-english/" 54> <span>B2</span> </a></div></div></div></section><section class="sevenesl-category-editorial inside-article" aria-label="Articles Guide"><div class="entry-content sevenesl-category-entry-content"><div id="esl-toc" class="esl-toc"><button type="button" class="esl-toc__title" aria-expanded="true" aria-controls="esl-toc-list"><span class="esl-toc__title-text">Contents</span><span class="esl-toc__toggle" aria-hidden="true"></span></button><nav class="esl-toc__nav" aria-label="Contents"><ul id="esl-toc-list" class="esl-toc__list"><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#what-is-an-article"><span class="esl-toc__num" aria-hidden="true">1</span><span class="esl-toc__label">What Is an Article?</span></a></div></li><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#different-types-of-articles"><span class="esl-toc__num" aria-hidden="true">2</span><span class="esl-toc__label">Different Types of Articles</span></a><button type="button" class="esl-toc__expand" aria-expanded="false" aria-label="Show subsections"></button></div><ul class="esl-toc__sub"><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#definite-article">Definite Article</a></li><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#indefinite-articles">Indefinite Articles</a></li></ul></li><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#rules-for-using-articles"><span class="esl-toc__num" aria-hidden="true">3</span><span class="esl-toc__label">Rules for Using Articles</span></a><button type="button" class="esl-toc__expand" aria-expanded="false" aria-label="Show subsections"></button></div><ul class="esl-toc__sub"><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#rule-1-article-choice-depends-on-sound">Rule #1: Article choice depends on sound</a></li><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#rule-2-articles-with-adjectives">Rule #2: Articles with adjectives</a></li><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#rule-3-uncountable-nouns">Rule #3: Uncountable nouns</a></li><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#rule-4-articles-and-possessive-pronouns">Rule #4: Articles and possessive pronouns</a></li><li class="esl-toc__item esl-toc__item--h3"><a class="esl-toc__link" href="#rule-5-when-articles-are-omitted">Rule #5: When articles are omitted</a></li></ul></li><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#when-not-to-use-an-english-article"><span class="esl-toc__num" aria-hidden="true">4</span><span class="esl-toc__label">
54When Not to Use an English Article</span></a></div></li><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#articles-with-countable-and-uncountable-nouns"><span class="esl-toc__num" aria-hidden="true">5</span><span class="esl-toc__label">Articles with Countable and Uncountable Nouns</span></a></div></li><li class="esl-toc__item esl-toc__item--h2"><div class="esl-toc__row"><a class="esl-toc__link" href="#how-to-use-articles-a-an-the-video"><span class="esl-toc__num" aria-hidden="true">6</span><span class="esl-toc__label">How to Use Articles (A / An / The) | Video</span></a></div></li></ul></nav></div><p>When studying English grammar, you may have come across <strong>articles</strong>. In this lesson, we will take a clear and structured look at what an article is, how it is used, and the rules surrounding it. The explanation is supported by examples and <a href="https://7esl.com/articles-worksheet/">exercises</a> so that you can gain a solid understanding of how articles function in real sentences.</p><h2 id="what-is-an-article">What Is an Article?</h2><p>In English grammar, there are two different types of articles: the <strong>definite article</strong> and the <strong>indefinite articles</strong>. In simple terms, an article tells the listener or reader whether a noun is <strong>specific</strong> or <strong>non-specific</strong>.</p><div class="mv-ads esl-ad-slot" data-slot="cat-landing" style="min-height:350px;margin:22px auto;max-width:340px;text-align:center;"></div><p>The three English articles are: <strong>a</strong>, <strong>an</strong>, and <strong>the</strong>.</p><p>Letâs look at some examples to clarify the meaning of an article.</p><ul><li><em>During <strong>the</strong> long journey, the family played car games.</em></li></ul><div class="mv-ads esl-ad-slot" data-slot="cat-landing" style="min-height:350px;margin:22px auto;max-width:340px;text-align:center;"></div><p>Here, the article <strong>the</strong> shows that we are talking about a <strong>specific</strong> journey and a <strong>specific</strong> family.</p><p>If we change the article, the meaning becomes more general:</p><ul><li><em>During <strong>a</strong> long journey, <strong>a</strong> family can play car games.</em></li></ul><div class="mv-ads esl-ad-slot" data-slot="cat-landing" style="min-height:350px;margin:22px auto;max-width:340px;text-align:center;"></div><p class="esl-adfree-nudge" style="max-width:340px;margin:-14px auto 22px;text-align:center;font-size:12px;line-height:1.5;color:#94a3b8;">Ads paying for your free English lessons. Prefer a quiet page? <a href="https://7esl.com/membership/?src=ad_slot" style="color:#64748b;text-decoration:underline;">Go ad-free</a></p><p>By changing the article, the sentence now refers to any journey or any family, not a particular one.</p><p><strong>Quick notes:</strong></p><ul><li>Articles are small but very important words in English.</li><li>Articles are considered adjectives because they modify nouns.</li><li>Articles always come before the nouns they describe.</li></ul><p><img loading="lazy" decoding="async" class="alignnone wp-image-17620 size-full" src="https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1.jpg" alt="English articles a an the grammar rules and examples" width="2980" height="3089" title="Articles Landing 1" srcset="https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1.jpg 2980w, https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1-460x477.jpg 460w, https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1-768x796.jpg 768w, https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1-988x1024.jpg 988w, https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1-116x120.jpg 116w, https://7esl.com/wp-content/uploads/2018/01/Articles_-A2FAN2F-THE-1-310x321.jpg 310w" sizes="auto, (max-width: 2980px) 100vw, 2980px" /></p><h2 id="different-types-of-articles">Different Types of Articles</h2><p>English has two types of articles, each with its own purpose:</p><ul><li><strong>Definite article:</strong> <em>the</em></li><li><strong>
54Indefinite articles:</strong> <em>a</em> and <em>an</em></li></ul><h3 id="definite-article">Definite Article</h3><p>The word <strong>the</strong> is called the definite article. It is used when the speaker is referring to something specific or something that is already known to the listener.</p><p>The definite article can be used with singular nouns, plural nouns, and uncountable nouns.</p><ul><li>Please show me <strong>the</strong> photo.</li><li>Can I see <strong>the</strong> blue dress? I do not like <strong>the</strong> red one.</li><li>Are we going to watch <strong>the</strong> football game?</li><li>I need <strong>the</strong> long wire; it is <strong>the</strong> only one that will reach the socket.</li></ul><h3 id="indefinite-articles">Indefinite Articles</h3><p>The indefinite articles are <strong>a</strong> and <strong>an</strong>. They are used when we are talking about something in a general or non-specific way.</p><p><strong>Important rule:</strong> The choice between <strong>a</strong> and <strong>an</strong> depends on the <strong>sound</strong> at the beginning of the word, not the letter.</p><ul><li>Use <strong>a</strong> before words that begin with a <strong>consonant sound</strong>.</li><li>Use <strong>an</strong> before words that begin with a <strong>vowel sound</strong>.</li></ul><p>Examples:</p><ul><li>I need to read <strong>a</strong> book.</li><li>I am going to watch <strong>a</strong> movie.</li><li>There is <strong>an</strong> animal in the garden.</li><li>Sally has <strong>an</strong> invention she is working on.</li></ul><h2 id="rules-for-using-articles">Rules for Using Articles</h2><h3 id="rule-1-article-choice-depends-on-sound">Rule #1: Article choice depends on sound</h3><p>Some words begin with a consonant letter but have a vowel sound, or vice versa.</p><ul><li><em>It is <strong>an</strong> honour to meet the Queen.</em> (The âhâ is silent.)</li><li><em>He is <strong>a</strong> United Nations representative.</em>
54 (âUnitedâ begins with a /j/ sound.)</li><li><em>She is <strong>a</strong> university student.</em></li></ul><h3 id="rule-2-articles-with-adjectives">Rule #2: Articles with adjectives</h3><p>When a noun is modified by an adjective, the article is chosen based on the <strong>adjectiveâs sound</strong>, not the noun.</p><ul><li><em>The <strong>Inuit</strong> people traditionally lived in <strong>a</strong> large igloo.</em></li><li><em>Last week I read <strong>an</strong> amazing book.</em></li></ul><h3 id="rule-3-uncountable-nouns">Rule #3: Uncountable nouns</h3><p>Uncountable nouns cannot be used with <strong>a</strong> or <strong>an</strong>.</p><p>Incorrect:</p><ul><li><em>Please give the dog <strong>a</strong> water.</em></li></ul><p>Correct alternatives:</p><ul><li><em>Please give the dog <strong>some</strong> water.</em></li><li><em>Please give the dog <strong>a bowl of</strong> water.</em></li></ul><h3 id="rule-4-articles-and-possessive-pronouns">Rule #4: Articles and possessive pronouns</h3><p>Articles are not used together with possessive pronouns.</p><p>Incorrect:</p><ul><li><em>Have you got <strong>the</strong> my coat?</em></li></ul><p>Correct:</p><ul><li><em>Have you got my coat?</em></li></ul><h3 id="rule-5-when-articles-are-omitted">Rule #5: When articles are omitted</h3><p>Sometimes, no article is needed:</p><ul><li><em>I like to play football.</em></li><li><em>She has breakfast at 7 a.m.</em></li></ul><h2 id="when-not-to-use-an-english-article">When Not to Use an English Article</h2><ol><li>When talking about things in general.</li><li>Before the names of sports and games.</li><li>Before most country names (except the UK, the USA, the Netherlands).</li><li>Before the names of languages.</li><li>Before meals when speaking generally.</li><li>Before noun + number combinations.</li></ol><h2 id="articles-with-countable-and-uncountable-nouns">Articles with Countable and Uncountable Nouns</h2><p>To choose the correct article, you must decide whether a noun is <strong>countable</strong> or <strong>uncountable</strong>.</p><p><strong>Countable nouns:</strong></p><p><em>an apple, a school, one picture, two pictures, three men</em></p><p><strong>Uncountable nouns:</strong></p><p><em>information, water, understanding, wood, cheese</em></p><h2 id="how-to-use-articles-a-an-the-video">How to Use Articles (A / An / The) | Video</h2><div class="embed-container"><iframe loading="lazy" src="https://www.youtube.com/embed/TulY-6VR2sE" frameborder="0" allowfullscreen="allowfullscreen"><br /> </iframe></div><p>Articles are a fundamental part of English grammar. Their correct use depends on the noun they modify and, in many cases, on the sound that follows the article. With practice, these rules become natural and easy to apply.</p></div><section id="esl-panel-test" class="esl-tab-panel esl-mini-quiz-section" 55aria-label="Practice quiz â knowledge check" 56data-test-id="894"><div class="esl-test-wrap" id="esl-mini-wrap-894"><div class="esl-test-header"><div class="esl-test-header__meta"> <span class="esl-badge-diff">mixed</span> <span class="esl-badge-type">Knowledge Check · 5 questions</span></div><h2 style="margin:0 0 4px;font-size:clamp(16px,2.5vw,20px);font-weight:700;color:#fff;line-height:1.3"> Articles Practice Quiz (A1-B2)</h2></div><div class="esl-test-progress-bar"><div class="esl-progress-track"><div class="esl-progress-fill" id="esl-mini-fill-894" 57style="width:20%"></div></div> <span class="esl-progress-label" id="esl-mini-label-894">1 / 5</span></div><div class="esl-test-body"><section class="esl-question-block esl-active" 58id="mini-question-894-1" 59aria-label="Question 1 of 5" 60data-qid="9367" 61data-type="mcq" 62><div class="esl-question-num">Q1</div><h3 class="esl-question-heading">Question 1: I have ___ cat.</h3><fieldset><legend class="esl-sr-only">Question 1 options</legend><div class="esl-options" role="radiogroup"><div class="esl-option" 63data-aid="37403" 64data-correct="1" 65> <input type="radio" id="mini-q9367-opt0" name="mini-q9367" value="37403" class="esl-sr-only"> <label for="mini-q9367-opt0"> <span class="esl-option-letter">A</span> <span class="esl-option-text">a</span> </label></div><div class="esl-option" 66data-aid="37404" 67data-correct="0" 68> <input type="radio" id="mini-q9367-opt1" name="mini-q9367" value="37404" class="esl-sr-only"> <label for="mini-q9367-opt1"> <span class="esl-option-letter">B</span> <span class="esl-option-text">the</span> </label></div><div class="esl-option" 69data-aid="37405" 70data-correct="0" 71> <input type="radio" id="mini-q9367-opt2" name="mini-q9367" value="37405" class="esl-sr-only"> <label for="mini-q9367-opt2"> <span class="esl-option-letter">C</span> <span class="esl-option-text">an</span> </label></div><div class="esl-option" 72data-aid="37406" 73data-correct="0" 74> <input type="radio" id="mini-q9367-opt3" name="mini-q9367" value="37406" class="esl-sr-only"> <label for="mini-q9367-opt3"> <span class="esl-option-letter">D</span> <span class="esl-option-text">some</span> </label></div></div><div class="esl-check-row"> <button class="esl-check-btn" data-qid="9367" type="button"> Check answer </button></div><div class="esl-question-feedback" id="esl-mini-fb-9367" 75aria-live="polite" role="status"> <span class="esl-fb-icon"></span> <span class="esl-fb-text"></span><div class="esl-fb-exp">"a" is correct because we use the indefinite article "a" before a singular countable noun starting with a consonant sound when mentioning it for the first time. "An" is used before vowel sounds, "the" implies a specific cat already known, and "some" is used with plural or uncountable nouns.</div></div><div class="esl-report-wrap" style="margin-top:12px;border-top:1px solid #f1f5f9;padding-top:10px"> <button type="button" class="esl-report-toggle-btn" style="background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none" 76data-qid="9367" 77data-testid="894" 78data-testtype="post_lesson" 79data-testlevel="mixed"> <span style="font-size:14px">ð©</span> Found a problem with this question? </button><div class="esl-report-form-wrap" style="display:none"><div style="font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px">Report an issue with this question</div> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Issue type <span style="color:#dc2626">*</span></label> <select class="esl-rep-type" style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;margin-bottom:10px;background:#fff;font-family:inherit"><option value="">â Select issue type â</option><option value="wrong_answer">Wrong answer marked as correct</option><option value="multiple_correct">More than one correct answer</option><option value="unclear">Question is unclear or ambiguous</option><option value="grammar_spelling">Grammar / spelling issue</option><option value="wrong_explanation">Explanation is incorrect</option><option value="technical">Technical / display issue</option><option value="other">Other</option> </select> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Description <small style="font-weight:400">(optional)</small></label><textarea class="esl-rep-desc" placeholder="Briefly describe the problemâ¦" rows="2" 80 style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box;margin-bottom:10px"></textarea><label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Email <small style="font-weight:400">
80(optional, for reply)</small></label> <input type="email" class="esl-rep-email" placeholder="[email protected]" 81style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;box-sizing:border-box;margin-bottom:12px;font-family:inherit"><div style="display:flex;gap:8px;align-items:center"> <button type="button" class="esl-rep-submit-btn" 82style="padding:9px 18px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit"> Submit Report </button> <button type="button" class="esl-rep-cancel-btn" 83style="padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit"> Cancel </button></div><div class="esl-rep-msg" style="margin-top:8px;font-size:13px"></div></div></div></fieldset></section><section class="esl-question-block" 84id="mini-question-894-2" 85aria-label="Question 2 of 5" 86data-qid="9371" 87data-type="true_false" 88><div class="esl-question-num">Q2</div><h3 class="esl-question-heading">Question 2: We use "an" before the word "university" because it starts with the letter "u."</h3><fieldset><legend class="esl-sr-only">Question 2 options</legend><div class="esl-options" role="radiogroup"><div class="esl-option" 89data-aid="37416" 90data-correct="0" 91> <input type="radio" id="mini-q9371-opt0" name="mini-q9371" value="37416" class="esl-sr-only"> <label for="mini-q9371-opt0"> <span class="esl-option-letter">A</span> <span class="esl-option-text">True</span> </label></div><div class="esl-option" 92data-aid="37417" 93data-correct="1" 94> <input type="radio" id="mini-q9371-opt1" name="mini-q9371" value="37417" class="esl-sr-only"> <label for="mini-q9371-opt1"> <span class="esl-option-letter">B</span> <span class="esl-option-text">False</span> </label></div></div><div class="esl-check-row"> <button class="esl-check-btn" data-qid="9371" type="button"> Check answer </button></div><div class="esl-question-feedback" id="esl-mini-fb-9371" 95aria-live="polite" role="status"> <span class="esl-fb-icon"></span> <span class="esl-fb-text"></span><div class="esl-fb-exp">False because the choice between "a" and "an" depends on the sound, not the letter. "University" begins with the consonant sound /juË/, so we say "a university," not "an university."</div></div><div class="esl-report-wrap" style="margin-top:12px;border-top:1px solid #f1f5f9;padding-top:10px"> <button type="button" class="esl-report-toggle-btn" style="background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none" 96data-qid="9371" 97data-testid="894" 98data-testtype="post_lesson" 99data-testlevel="mixed"> <span style="font-size:14px">ð©</span> Found a problem with this question? </button><div class="esl-report-form-wrap" style="display:none"><div style="font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px">Report an issue with this question</div> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Issue type <span style="color:#dc2626">*</span></label> <select class="esl-rep-type" style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;margin-bottom:10px;background:#fff;font-family:inherit"><option value="">â Select issue type â</option><option value="wrong_answer">Wrong answer marked as correct</option><option value="multiple_correct">More than one correct answer</option><option value="unclear">Question is unclear or ambiguous</option><option value="grammar_spelling">Grammar / spelling issue</option><option value="wrong_explanation">Explanation is incorrect</option><option value="technical">Technical / display issue</option><option value="other">Other</option> </select> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Description <small style="font-weight:400">(optional)</small></label><textarea class="esl-rep-desc" placeholder="Briefly describe the problemâ¦" rows="2" 100 style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box;margin-bottom:10px"></textarea><label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Email <small style="font-weight:400">
100(optional, for reply)</small></label> <input type="email" class="esl-rep-email" placeholder="[email protected]" 101style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;box-sizing:border-box;margin-bottom:12px;font-family:inherit"><div style="display:flex;gap:8px;align-items:center"> <button type="button" class="esl-rep-submit-btn" 102style="padding:9px 18px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit"> Submit Report </button> <button type="button" class="esl-rep-cancel-btn" 103style="padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit"> Cancel </button></div><div class="esl-rep-msg" style="margin-top:8px;font-size:13px"></div></div></div></fieldset></section><section class="esl-question-block" 104id="mini-question-894-3" 105aria-label="Question 3 of 5" 106data-qid="9375" 107data-type="ordering" 108><div class="esl-question-num">Q3</div><h3 class="esl-question-heading">Question 3: Put these words in the correct order to form a sentence:</h3><fieldset><legend class="esl-sr-only">Question 3 options</legend><ul class="esl-order-list" role="group" id="order-9375"><li class="esl-order-item" data-aid="37432" data-pos="3" draggable="true"> <span class="esl-order-handle"></span> <span class="esl-order-text">the piano</span> <span class="esl-order-num"></span> <span class="esl-order-arrows"><button type="button" class="esl-order-arrow esl-order-up" aria-label="Move up">â²</button><button type="button" class="esl-order-arrow esl-order-down" aria-label="Move down">â¼</button></span></li><li class="esl-order-item" data-aid="37433" data-pos="4" draggable="true"> <span class="esl-order-handle"></span> <span class="esl-order-text">beautifully</span> <span class="esl-order-num"></span> <span class="esl-order-arrows"><button type="button" class="esl-order-arrow esl-order-up" aria-label="Move up">â²</button><button type="button" class="esl-order-arrow esl-order-down" aria-label="Move down">â¼</button></span></li><li class="esl-order-item" data-aid="37430" data-pos="1" draggable="true"> <span class="esl-order-handle"></span> <span class="esl-order-text">She</span> <span class="esl-order-num"></span> <span class="esl-order-arrows"><button type="button" class="esl-order-arrow esl-order-up" aria-label="Move up">â²</button><button type="button" class="esl-order-arrow esl-order-down" aria-label="Move down">â¼</button></span></li><li class="esl-order-item" data-aid="37431" data-pos="2" draggable="true"> <span class="esl-order-handle"></span> <span class="esl-order-text">plays</span> <span class="esl-order-num"></span> <span class="esl-order-arrows"><button type="button" class="esl-order-arrow esl-order-up" aria-label="Move up">â²</button><button type="button" class="esl-order-arrow esl-order-down" aria-label="Move down">â¼</button></span></li></ul><p class="esl-q-hint">Drag items or use arrows to arrange them in the correct order.</p><div class="esl-check-row"> <button class="esl-check-btn" data-qid="9375" type="button"> Check answer </button></div><div class="esl-question-feedback" id="esl-mini-fb-9375" 109aria-live="polite" role="status"> <span class="esl-fb-icon"></span> <span class="esl-fb-text"></span><div class="esl-fb-exp">The correct order is "She plays the piano beautifully" because musical instruments require the definite article "the" (e.g., play the piano, play the guitar).</div></div><div class="esl-report-wrap" style="margin-top:12px;border-top:1px solid #f1f5f9;padding-top:10px"> <button type="button" class="esl-report-toggle-btn" style="background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none" 110data-qid="9375" 111data-testid="894" 112data-testtype="post_lesson" 113data-testlevel="mixed"> <span style="font-size:14px">ð©</span> Found a problem with this question? </button><div class="esl-report-form-wrap" style="display:none"><div style="font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px">Report an issue with this question</div> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Issue type <span style="color:#dc2626">*</span></label> <select class="esl-rep-type" style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;margin-bottom:10px;background:#fff;font-family:inherit"><option value="">â Select issue type â</option><option value="wrong_answer">Wrong answer marked as correct</option><option value="multiple_correct">More than one correct answer</option><option value="unclear">Question is unclear or ambiguous</option><option value="grammar_spelling">Grammar / spelling issue</option><option value="wrong_explanation">Explanation is incorrect</option><option value="technical">Technical / display issue</option><option value="other">Other</option> </select> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Description <small style="font-weight:400">(optional)</small></label><textarea class="esl-rep-desc" placeholder="Briefly describe the problemâ¦" rows="2" 114 style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box;margin-bottom:10px"></textarea><label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Email <small style="font-weight:400">
114(optional, for reply)</small></label> <input type="email" class="esl-rep-email" placeholder="[email protected]" 115style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;box-sizing:border-box;margin-bottom:12px;font-family:inherit"><div style="display:flex;gap:8px;align-items:center"> <button type="button" class="esl-rep-submit-btn" 116style="padding:9px 18px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit"> Submit Report </button> <button type="button" class="esl-rep-cancel-btn" 117style="padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit"> Cancel </button></div><div class="esl-rep-msg" style="margin-top:8px;font-size:13px"></div></div></div></fieldset></section><section class="esl-question-block" 118id="mini-question-894-4" 119aria-label="Question 4 of 5" 120data-qid="9379" 121data-type="matching" 122><div class="esl-question-num">Q4</div><h3 class="esl-question-heading">Question 4: Match each phrase to the correct article rule.</h3><fieldset><legend class="esl-sr-only">Question 4 options</legend><div class="esl-match-wrap" role="group" id="match-9379"><div class="esl-match-col esl-match-col--left"></div><div class="esl-match-col esl-match-col--arrows" id="arrows-9379"></div><div class="esl-match-col esl-match-col--right"></div></div><p class="esl-q-hint">Select an item on the left, then tap its match on the right.</p> <input type="hidden" class="esl-match-answer" data-qid="9379"><div class="esl-check-row"> <button class="esl-check-btn" data-qid="9379" type="button"> Check answer </button></div><div class="esl-question-feedback" id="esl-mini-fb-9379" 123aria-live="polite" role="status"> <span class="esl-fb-icon"></span> <span class="esl-fb-text"></span><div class="esl-fb-exp">{""content"": ""Zero article with languages""</div></div><div class="esl-report-wrap" style="margin-top:12px;border-top:1px solid #f1f5f9;padding-top:10px"> <button type="button" class="esl-report-toggle-btn" style="background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none" 124data-qid="9379" 125data-testid="894" 126data-testtype="post_lesson" 127data-testlevel="mixed"> <span style="font-size:14px">ð©</span> Found a problem with this question? </button><div class="esl-report-form-wrap" style="display:none"><div style="font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px">Report an issue with this question</div> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Issue type <span style="color:#dc2626">*</span></label> <select class="esl-rep-type" style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;margin-bottom:10px;background:#fff;font-family:inherit"><option value="">â Select issue type â</option><option value="wrong_answer">Wrong answer marked as correct</option><option value="multiple_correct">More than one correct answer</option><option value="unclear">Question is unclear or ambiguous</option><option value="grammar_spelling">Grammar / spelling issue</option><option value="wrong_explanation">Explanation is incorrect</option><option value="technical">Technical / display issue</option><option value="other">Other</option> </select> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Description <small style="font-weight:400">(optional)</small></label><textarea class="esl-rep-desc" placeholder="Briefly describe the problemâ¦" rows="2" 128 style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box;margin-bottom:10px"></textarea><label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Email <small style="font-weight:400">
128(optional, for reply)</small></label> <input type="email" class="esl-rep-email" placeholder="[email protected]" 129style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;box-sizing:border-box;margin-bottom:12px;font-family:inherit"><div style="display:flex;gap:8px;align-items:center"> <button type="button" class="esl-rep-submit-btn" 130style="padding:9px 18px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit"> Submit Report </button> <button type="button" class="esl-rep-cancel-btn" 131style="padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit"> Cancel </button></div><div class="esl-rep-msg" style="margin-top:8px;font-size:13px"></div></div></div></fieldset></section><section class="esl-question-block" 132id="mini-question-894-5" 133aria-label="Question 5 of 5" 134data-qid="9383" 135data-type="mcq" 136><div class="esl-question-num">Q5</div><h3 class="esl-question-heading">Question 5: She gave me ___ useful piece of advice about my career.</h3><fieldset><legend class="esl-sr-only">Question 5 options</legend><div class="esl-options" role="radiogroup"><div class="esl-option" 137data-aid="37453" 138data-correct="1" 139> <input type="radio" id="mini-q9383-opt0" name="mini-q9383" value="37453" class="esl-sr-only"> <label for="mini-q9383-opt0"> <span class="esl-option-letter">A</span> <span class="esl-option-text">a</span> </label></div><div class="esl-option" 140data-aid="37454" 141data-correct="0" 142> <input type="radio" id="mini-q9383-opt1" name="mini-q9383" value="37454" class="esl-sr-only"> <label for="mini-q9383-opt1"> <span class="esl-option-letter">B</span> <span class="esl-option-text">an</span> </label></div><div class="esl-option" 143data-aid="37455" 144data-correct="0" 145> <input type="radio" id="mini-q9383-opt2" name="mini-q9383" value="37455" class="esl-sr-only"> <label for="mini-q9383-opt2"> <span class="esl-option-letter">C</span> <span class="esl-option-text">no article</span> </label></div><div class="esl-option" 146data-aid="37456" 147data-correct="0" 148> <input type="radio" id="mini-q9383-opt3" name="mini-q9383" value="37456" class="esl-sr-only"> <label for="mini-q9383-opt3"> <span class="esl-option-letter">D</span> <span class="esl-option-text">the</span> </label></div></div><div class="esl-check-row"> <button class="esl-check-btn" data-qid="9383" type="button"> Check answer </button></div><div class="esl-question-feedback" id="esl-mini-fb-9383" 149aria-live="polite" role="status"> <span class="esl-fb-icon"></span> <span class="esl-fb-text"></span><div class="esl-fb-exp">"a" is correct because "useful" begins with the consonant sound /juË/, not a vowel sound, so we use "a" rather than "an." "The" would require prior mention or shared knowledge of this advice. "No article" is ungrammatical before a singular countable noun like "piece."</div></div><div class="esl-report-wrap" style="margin-top:12px;border-top:1px solid #f1f5f9;padding-top:10px"> <button type="button" class="esl-report-toggle-btn" style="background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none" 150data-qid="9383" 151data-testid="894" 152data-testtype="post_lesson" 153data-testlevel="mixed"> <span style="font-size:14px">ð©</span> Found a problem with this question? </button><div class="esl-report-form-wrap" style="display:none"><div style="font-size:13px;font-weight:700;color:#0f172a;margin-bottom:10px">Report an issue with this question</div> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Issue type <span style="color:#dc2626">*</span></label> <select class="esl-rep-type" style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;margin-bottom:10px;background:#fff;font-family:inherit"><option value="">â Select issue type â</option><option value="wrong_answer">Wrong answer marked as correct</option><option value="multiple_correct">More than one correct answer</option><option value="unclear">Question is unclear or ambiguous</option><option value="grammar_spelling">Grammar / spelling issue</option><option value="wrong_explanation">Explanation is incorrect</option><option value="technical">Technical / display issue</option><option value="other">Other</option> </select> <label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Description <small style="font-weight:400">(optional)</small></label><textarea class="esl-rep-desc" placeholder="Briefly describe the problemâ¦" rows="2" 154 style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;resize:vertical;box-sizing:border-box;margin-bottom:10px"></textarea><label style="font-size:12px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:4px">Email <small style="font-weight:400">
154(optional, for reply)</small></label> <input type="email" class="esl-rep-email" placeholder="[email protected]" 155style="width:100%;padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;box-sizing:border-box;margin-bottom:12px;font-family:inherit"><div style="display:flex;gap:8px;align-items:center"> <button type="button" class="esl-rep-submit-btn" 156style="padding:9px 18px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit"> Submit Report </button> <button type="button" class="esl-rep-cancel-btn" 157style="padding:9px 14px;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit"> Cancel </button></div><div class="esl-rep-msg" style="margin-top:8px;font-size:13px"></div></div></div></fieldset></section></div><div class="esl-test-nav"> <button class="esl-btn esl-btn-ghost" id="esl-mini-prev-894" 158type="button" style="visibility:hidden">â Back</button> <button class="esl-btn esl-btn-primary" id="esl-mini-next-894" 159type="button">Next â</button> <button class="esl-btn esl-btn-submit" id="esl-mini-submit-894" 160type="button" style="display:none" 161data-test-id="894" 162data-logged-in="0"> Submit â </button></div></div></section>
162<script id="esl-mini-driver-894">(function(){ 163 var REST = 'https://7esl.com/wp-json/esl/v1/'; 164 var NONCE = '06d84125a1'; 165 var TESTID = 894; 166 var TOTAL = 5; 167 var FULLCOUNT= 20; 168 var FULLURL = 'https://7esl.com/practice/grammar/articles-test/'; 169 var LOGGED = 0 === 1; 170 var PURL = 'https://7esl.com/profile/'; 171 /* v1.9.29 (C4) â chuyên mục cá»§a chÃnh bà i nà y, dùng khi không có viá»c 172 tiếp theo riêng cho ngưá»i Äang xem. Xem khá»i chú thÃch á» Äầu file. */ 173 var CATNAME = ''; 174 var CATURL = ''; 175 var MINI_XP_MAX = 5; // fixed max = 5 XP 176 var FULL_TEST_XP = 22; // full test DB xp_reward 177 var PID = 894; 178 /* v2 (design v4): the shared result block of tests.js (same as the practice test page). */ 179 var V2 = true; 180 var LVL = 'mixed'; 181 182 var current = 0, answers = {}, checked = 0, correct_count = 0; 183 var started = Date.now(); 184 185 var panel = document.getElementById('esl-panel-test'); 186 var wrap = document.getElementById('esl-mini-wrap-'+PID); 187 var btnPrev = document.getElementById('esl-mini-prev-'+PID); 188 var btnNext = document.getElementById('esl-mini-next-'+PID); 189 var btnSub = document.getElementById('esl-mini-submit-'+PID); 190 var fill = document.getElementById('esl-mini-fill-'+PID); 191 var lbl = document.getElementById('esl-mini-label-'+PID); 192 var blocks = Array.from(panel.querySelectorAll('.esl-question-block')); 193 194 function showBlock(n){ 195 blocks.forEach(function(b,i){ b.classList.toggle('esl-active', i===n); }); 196 if(fill) fill.style.width = Math.round((n+1)/TOTAL*100)+'%'; 197 if(lbl) lbl.textContent = (n+1)+' / '+TOTAL; 198 btnPrev.style.visibility = n===0 ? 'hidden' : 'visible'; 199 btnNext.style.display = n===TOTAL-1 ? 'none' : ''; 200 if(n===TOTAL-1 && checked>0) btnSub.style.display=''; 201 } 202 203 btnPrev.addEventListener('click', function(){ if(current>0){ current--; showBlock(current); }}); 204 btnNext.addEventListener('click', function(){ 205 if(current<TOTAL-1){ current++; showBlock(current); 206 if(current===TOTAL-1 && checked>0) btnSub.style.display=''; 207 } 208 }); 209 btnSub.addEventListener('click', doSubmit); 210 211 /* Option click */ 212 panel.addEventListener('click', function(e){ 213 var opt = e.target.closest('.esl-option'); 214 if(opt){ 215 var block = opt.closest('.esl-question-block'); 216 if(!block || block.classList.contains('esl-checked')) return; 217 block.querySelectorAll('.esl-option').forEach(function(o){ 218 o.classList.remove('esl-selected'); 219 var r = o.querySelector('input[type="radio"]'); if(r) r.checked = false; 220 }); 221 opt.classList.add('esl-selected'); 222 var radio = opt.querySelector('input[type="radio"]'); if(radio) radio.checked = true; 223 answers[block.dataset.qid] = opt.dataset.aid; 224 return; 225 } 226 227 /* ââ Matching ââ */ 228 var matchItem = e.target.closest('.esl-match-item'); 229 if(matchItem){ 230 var block = matchItem.closest('.esl-question-block'); 231 if(!block || block.classList.contains('esl-checked')) return; 232 var side = matchItem.getAttribute('data-side'); 233 var wrap = block.querySelector('.esl-match-wrap'); 234 if(side === 'left'){ 235 wrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(i){ i.classList.remove('esl-match-active'); }); 236 matchItem.classList.toggle('esl-match-active', !matchItem.classList.contains('esl-match-active')); 237 } else { 238 var selLeft = wrap.querySelector('.esl-match-item[data-side="left"].esl-match-active'); 239 if(!selLeft) return; 240 // Remove stale pairings 241 wrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 242 if(l.getAttribute('data-matched') === matchItem.getAttribute('data-aid')) l.removeAttribute('data-matched'); 243 }); 244 selLeft.setAttribute('data-matched', matchItem.getAttribute('data-aid')); 245 selLeft.classList.remove('esl-match-active'); 246 // Sync paired visual 247 wrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 248 l.classList.toggle('esl-match-paired', !!l.getAttribute('data-matched')); 249 }); 250 var pairedRids = []; 251 wrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 252 if(l.getAttribute('data-matched')) pairedRids.push(l.getAttribute('data-matched')); 253 }); 254 wrap.querySelectorAll('.esl-match-item[data-side="right"]').forEach(function(r){ 255 r.classList.toggle('esl-match-paired', pairedRids.indexOf(r.getAttribute('data-aid')) !== -1); 256 }); 257 // Build answer map {leftAid: rightAid} 258 var ansMap = {}; 259 wrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 260 if(l.getAttribute('data-matched')) ansMap[l.getAttribute('data-aid')] = l.getAttribute('data-matched'); 261 }); 262 answers[block.dataset.qid] = ansMap; 263 } 264 return; 265 } 266 267 /* ââ Sentence building ââ */ 268 var chip = e.target.closest('.esl-word-chip'); 269 if(chip){ 270 var block = chip.closest('.esl-question-block'); 271 if(!block || block.classList.contains('esl-checked')) return; 272 var sbAns = block.querySelector('.esl-sentence-answer'); 273 var sbBank = block.querySelector('.esl-sentence-bank'); 274 if(chip.classList.contains('esl-word-in-answer')){ 275 // Return to bank 276 chip.remove(); 277 var orig = sbBank.querySelector('[data-aid="'+chip.getAttribute('data-aid')+'"].esl-word-used'); 278 if(!orig) orig = sbBank.querySelector('[data-aid="'+chip.getAttribute('data-aid')+'"]'); 279 if(orig) orig.style.opacity=''; orig && (orig.style.pointerEvents=''); 280 if(!sbAns.querySelector('.esl-word-chip')){ 281 var ph = document.createElement('span'); 282 ph.className = 'esl-sentence-placeholder';
283 ph.textContent = 'Tap words below to build the sentence'; 284 sbAns.appendChild(ph); 285 } 286 } else { 287 // Add to answer 288 if(chip.style.opacity === '0.3' || chip.style.opacity === '.3') return; 289 chip.style.opacity = '0.3'; 290 chip.style.pointerEvents = 'none'; 291 var ansChip = document.createElement('span'); 292 ansChip.className = 'esl-word-chip esl-word-in-answer'; 293 ansChip.setAttribute('data-aid', chip.getAttribute('data-aid')); 294 ansChip.textContent = chip.textContent; 295 // Styled via CSS class esl-word-in-answer 296 var ph = sbAns.querySelector('.esl-sentence-placeholder'); 297 if(ph) ph.remove(); 298 sbAns.appendChild(ansChip); 299 sbAns.style.borderColor = '#27a9cb'; 300 sbAns.style.background = 'rgba(39,169,203,.04)'; 301 } 302 answers[block.dataset.qid] = Array.from(sbAns.querySelectorAll('.esl-word-chip')).map(function(c){ return c.getAttribute('data-aid'); }); 303 return; 304 } 305 306 var cb = e.target.closest('.esl-check-btn'); 307 if(cb){ doCheck(cb); return; } 308 309 /* ââ Bug Report ââ */ 310 var repToggle = e.target.closest('.esl-report-toggle-btn'); 311 if (repToggle) { 312 var fw = repToggle.nextElementSibling; 313 if (fw && fw.classList.contains('esl-report-form-wrap')) { 314 var isHidden = fw.style.display === 'none'; 315 fw.style.display = isHidden ? 'block' : 'none'; 316 if (isHidden) { var s = fw.querySelector('.esl-rep-type'); if(s) s.focus(); } 317 } 318 return; 319 } 320 var repCancel = e.target.closest('.esl-rep-cancel-btn'); 321 if (repCancel) { 322 var fw = repCancel.closest('.esl-report-form-wrap'); 323 if (fw) fw.style.display = 'none'; 324 return; 325 } 326 var repSubmit = e.target.closest('.esl-rep-submit-btn'); 327 if (repSubmit) { 328 var fw = repSubmit.closest('.esl-report-form-wrap'); 329 var repWrap = repSubmit.closest('.esl-report-wrap'); 330 var tog = repWrap ? repWrap.querySelector('.esl-report-toggle-btn') : null; 331 var qid2 = tog ? (tog.getAttribute('data-qid') || '') : ''; 332 var ttype2= tog ? (tog.getAttribute('data-testtype') || '') : ''; 333 var tlvl2 = tog ? (tog.getAttribute('data-testlevel') || '') : ''; 334 var typeEl2 = fw.querySelector('.esl-rep-type'); 335 var descEl2 = fw.querySelector('.esl-rep-desc'); 336 var emailEl2 = fw.querySelector('.esl-rep-email'); 337 var msgEl2 = fw.querySelector('.esl-rep-msg'); 338 if (!typeEl2.value) { 339 msgEl2.innerHTML = '<span style="color:#dc2626">\u26A0\uFE0F Please select an issue type.</span>'; 340 typeEl2.style.borderColor = '#dc2626'; return; 341 } 342 typeEl2.style.borderColor = '#e2e8f0'; 343 var userAns2 = answers[qid2] !== undefined ? JSON.stringify(answers[qid2]) : ''; 344 repSubmit.disabled = true; repSubmit.textContent = 'Sending\u2026'; 345 msgEl2.innerHTML = ''; 346 fetch(REST + 'questions/' + qid2 + '/report', { 347 method: 'POST', 348 headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': NONCE }, 349 credentials: 'include', 350 body: JSON.stringify({ 351 report_type: typeEl2.value, description: descEl2.value, 352 email: emailEl2.value, user_answer: userAns2, correct_answer: '', 353 page_url: window.location.href, test_type: ttype2, test_level: tlvl2 354 }) 355 }).then(function(r){ return r.json(); }).then(function(j){ 356 if (j.success) { 357 msgEl2.innerHTML = '<span style="color:#16a34a">\u2713 Thanks! We\'ll review this question soon.</span>'; 358 repSubmit.textContent = 'Sent \u2713'; repSubmit.style.background = '#16a34a'; 359 typeEl2.value=''; descEl2.value=''; emailEl2.value=''; 360 setTimeout(function(){ fw.style.display='none'; }, 2800); 361 } else { 362 msgEl2.innerHTML = '<span style="color:#dc2626">\u26A0\uFE0F '+(j.message||'Failed.')+'</span>'; 363 repSubmit.disabled=false; repSubmit.textContent='Submit Report'; 364 } 365 }).catch(function(){ 366 msgEl2.innerHTML = '<span style="color:#dc2626">\u26A0\uFE0F Network error.</span>'; 367 repSubmit.disabled=false; repSubmit.textContent='Submit Report'; 368 }); 369 return; 370 } 371 }); 372 373 /* ââ Ordering drag-drop ââ */ 374 panel.addEventListener('dragstart', function(e){ 375 var item = e.target.closest('.esl-order-item'); 376 if(!item) return; 377 var block = item.closest('.esl-question-block'); 378 if(block && block.classList.contains('esl-checked')) { e.preventDefault(); return; } 379 e.dataTransfer.effectAllowed = 'move'; 380 e.dataTransfer.setData('text/plain', item.getAttribute('data-aid')); 381 setTimeout(function(){ item.classList.add('esl-order-dragging'); }, 0); 382 }); 383 panel.addEventListener('dragend', function(e){ 384 var item = e.target.closest('.esl-order-item'); 385 if(item) item.classList.remove('esl-order-dragging'); 386 panel.querySelectorAll('.esl-order-item').forEach(function(i){ i.classList.remove('esl-order-over'); }); 387 }); 388 panel.addEventListener('dragover', function(e){ 389 var item = e.target.closest('.esl-order-item'); 390 if(!item) return; 391 e.preventDefault(); 392 panel.querySelectorAll('.esl-order-item').forEach(function(i){ i.classList.remove('esl-order-over'); }); 393 item.classList.add('esl-order-over'); 394 }); 395 panel.addEventListener('drop', function(e){ 396 var target = e.target.closest('.esl-order-item'); 397 if(!target) return; 398 e.preventDefault(); 399 var fromId = e.dataTransfer.getData('text/plain'); 400 var list = target.closest('.esl-order-list'); 401 var fromEl = list ? list.querySelector('[data-aid="'+fromId+'"]') : null; 402 if(!fromEl || fromEl === target) return; 403 var items = Array.from(list.children); 404 var fi = items.indexOf(fromEl), ti = items.indexOf(target); 405 list.insertBefore(fromEl, fi < ti ? target.nextSibling : target); 406 var block = list.closest('.esl-question-block'); 407 if(block) answers[block.dataset.qid] = Array.from(list.querySelectorAll('.esl-order-item')).map(function(i){ return i.getAttribute('data-aid'); }); 408 }); 409 410 panel.addEventListener('input', function(e){ 411 if(!e.target.classList.contains('esl-fill-input')) return; 412 var block = e.target.closest('.esl-question-block'); 413 if(block) answers[block.dataset.qid] = e.target.value; 414 }); 415 416 /* ââ Ordering arrows (touch-friendly) ââ */ 417 panel.addEventListener('click', function(e){ 418 var arrow = e.target.closest('.esl-order-arrow'); 419 if(!arrow) return; 420 var item = arrow.closest('.esl-order-item'); 421 var block = item ? item.closest('.esl-question-block') : null; 422 if(!block || block.classList.contains('esl-checked')) return; 423 var list = item.closest('.esl-order-list'); 424 if(!list) return; 425 var isUp = arrow.classList.contains('esl-order-up'); 426 var sibling = isUp ? item.previousElementSibling : item.nextElementSibling; 427 if(!sibling) return; 428 // Animate swap 429 item.style.transition = 'transform .2s ease'; 430 sibling.style.transition = 'transform .2s ease'; 431 if(isUp) { list.insertBefore(item, sibling); } 432 else { list.insertBefore(sibling, item); } 433 item.style.animation = 'esl-order-pop .25s ease'; 434 setTimeout(function(){ item.style.animation = ''; }, 250); 435 answers[block.dataset.qid] = Array.from(list.querySelectorAll('.esl-order-item')).map(function(i){ return i.getAttribute('data-aid'); }); 436 }); 437 438 /* ââ Mini confetti burst ââ */ 439 function miniConfetti(el){ 440 var colors = ['#27a9cb','#16a34a','#f59e0b','#8b5cf6','#ef4444','#06b6d4']; 441 var rect = el.getBoundingClientRect(); 442 for(var i=0;i<12;i++){ 443 var p = document.createElement('div'); 444 p.className = 'esl-confetti-particle'; 445 p.style.left = (rect.left + rect.width/2 + (Math.random()-0.5)*60) + 'px'; 446 p.style.top = (rect.top + window.scrollY - 10) + 'px'; 447 p.style.background = colors[Math.floor(Math.random()*colors.length)]; 448 p.style.animationDuration = (.5+Math.random()*.5)+'s'; 449 p.style.animationDelay = (Math.random()*.15)+'s'; 450 document.body.appendChild(p); 451 setTimeout(function(){ p.remove(); }, 1200); 452 } 453 } 454 455 panel.addEventListener('keydown', function(e){ 456 if(e.key===' '||e.key==='Enter'){ 457 var opt=e.target.closest('.esl-option'); if(opt){e.preventDefault();opt.click();} 458 } 459 }); 460 461 function doCheck(btn){ 462 var block = btn.closest('.esl-question-block'); 463 if(!block||block.classList.contains('esl-checked')) return; 464 block.classList.add('esl-checked'); 465 btn.disabled=true; 466 var type=block.dataset.type, qid=block.dataset.qid, isCorrect=false; 467 468 if(type==='fill_blank'){ 469 var inp=block.querySelector('.esl-fill-input'); 470 var val=inp?inp.value.trim().toLowerCase():''; 471 var acc=(block.dataset.correctAnswers||'').split('||').map(function(s){return s.trim().toLowerCase();}); 472 isCorrect=acc.some(function(a){return a===val;}); 473 if(inp){inp.disabled=true;inp.classList.add(isCorrect?'esl-correct':'esl-wrong');} 474 } else if(type==='matching'){ 475 // Matching: check pairs via data-matched attributes 476 var matchWrap=block.querySelector('.esl-match-wrap'); 477 if(matchWrap){ 478 var pairs={},correct=0,total=0; 479 matchWrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 480 var matched=l.getAttribute('data-matched'); 481 var pg=l.getAttribute('data-pair'); 482 var rightEl=matchWrap.querySelector('.esl-match-item[data-side="right"][data-pair="'+pg+'"]'); 483 total++; 484 if(matched&&rightEl&&matched===rightEl.getAttribute('data-aid')){ 485 correct++;l.classList.add('esl-match-correct'); 486 if(rightEl)rightEl.classList.add('esl-match-correct'); 487 } else { 488 l.classList.add('esl-match-wrong'); 489 if(rightEl)rightEl.classList.add('esl-match-wrong'); 490 } 491 }); 492 isCorrect=(correct===total&&total>0); 493 // Always show correct pairs table after checking 494 if(!block.querySelector('.esl-match-answer-key')){ 495 var key=document.createElement('div'); 496 key.className='esl-match-answer-key'; 497 var rows='<div style="font-weight:600;color:#0f172a;margin-bottom:6px">â Correct pairs:</div>'; 498 matchWrap.querySelectorAll('.esl-match-item[data-side="left"]').forEach(function(l){ 499 var pg=l.getAttribute('data-pair'); 500 var rightEl=matchWrap.querySelector('.esl-match-item[data-side="right"][data-pair="'+pg+'"]'); 501 var userMatchedEl=matchWrap.querySelector('.esl-match-item[data-side="right"][data-aid="'+l.getAttribute('data-matched')+'"]'); 502 var isOk=l.classList.contains('esl-match-correct'); 503 rows+='<div style="display:flex;align-items:center;gap:8px;padding:5px 8px;margin-bottom:4px;border-radius:6px;background:'+(isOk?'#f0fdf4':'#fff8f8')+'">'+ 504 '<span style="color:'+(isOk?'#16a34a':'#dc2626')+';font-size:15px;flex-shrink:0">'+(isOk?'â':'â')+'</span>'+ 505 '<span style="flex:1;color:#0f172a">'+l.textContent+'</span>'+ 506 '<span style="color:#94a3b8;flex-shrink:0">â</span>'+ 507 '<span style="flex:1;color:'+(isOk?'#16a34a':'#16a34a')+'">'+( rightEl?rightEl.textContent:'' )+'</span>'+ 508 '</div>'; 509 if(!isOk && userMatchedEl){ 510 rows+='<div style="font-size:11px;color:#dc2626;padding:0 8px 6px 31px">You chose: '+userMatchedEl.textContent+'</div>'; 511 } 512 }); 513 key.innerHTML=rows; 514 matchWrap.parentNode.insertBefore(key, matchWrap.nextSibling); 515 } 516 } 517 matchWrap&&matchWrap.querySelectorAll('.esl-match-item').forEach(function(i){i.style.pointerEvents='none';}); 518 } else if(type==='ordering'){ 519 var ordList=block.querySelector('.esl-order-list'); 520 if(ordList){ 521 var items=Array.from(ordList.querySelectorAll('.esl-order-item')); 522 // Sort by data-pos (1-based) to get correct sequence 523 var correctSeq=items.slice().sort(function(a,b){ 524 return parseInt(a.getAttribute('data-pos'),10)-parseInt(b.getAttribute('data-pos'),10); 525 }).map(function(i){ return i.getAttribute('data-aid'); }); 526 var userSeq=items.map(function(i){ return i.getAttribute('data-aid'); }); 527 var allCorrect=userSeq.join(',')=== correctSeq.join(',');
528 items.forEach(function(item,idx){ 529 item.style.pointerEvents='none'; 530 var isItemOk=item.getAttribute('data-aid')===correctSeq[idx]; 531 item.classList.add(isItemOk?'esl-order-correct':'esl-order-wrong'); 532 }); 533 isCorrect=allCorrect; 534 if(!allCorrect){ 535 // Show correct order as hint below list 536 var hint=block.querySelector('.esl-order-correct-hint'); 537 if(!hint){ 538 hint=document.createElement('p'); 539 hint.className='esl-order-correct-hint'; 540 ordList.parentNode.insertBefore(hint, ordList.nextSibling); 541 } 542 hint.innerHTML='<strong>Correct order:</strong> '+correctSeq.map(function(aid){ 543 var el=ordList.querySelector('[data-aid="'+aid+'"]'); 544 return el?el.querySelector('.esl-order-text').textContent:''; 545 }).join(' â '); 546 } 547 } 548 } else if(type==='sentence_building'){ 549 var sbAns=block.querySelector('.esl-sentence-answer'); 550 if(sbAns){ 551 var chips=Array.from(sbAns.querySelectorAll('.esl-word-chip')); 552 var sbBank=block.querySelector('.esl-sentence-bank'); 553 var sbWrap=block.querySelector('.esl-sentence-wrap'); 554 // Get all bank chips (including used) for content lookup 555 var allBankChips=sbBank?Array.from(sbBank.querySelectorAll('.esl-word-chip')):[]; 556 function getTextByAid(aid){ 557 for(var i=0;i<allBankChips.length;i++){ 558 if(allBankChips[i].getAttribute('data-aid')===String(aid)) return allBankChips[i].textContent; 559 } 560 return ''; 561 } 562 var correctOrder=(block.getAttribute('data-correct-order')||'').split(',').filter(Boolean); 563 // Compare by TEXT content (handles duplicate words like two "to") 564 var userTexts=chips.map(function(c){ return c.textContent.trim(); }); 565 var correctTexts=correctOrder.map(function(aid){ return getTextByAid(aid).trim(); }); 566 isCorrect = userTexts.join(' ') === correctTexts.join(' '); 567 // Lock all chips 568 chips.forEach(function(c){ c.style.pointerEvents='none'; }); 569 allBankChips.forEach(function(c){ c.style.pointerEvents='none'; }); 570 // Show correct sentence hint AFTER the wrap (not between answer and bank) 571 var hintTarget = sbWrap || sbAns; 572 var sbHint=block.querySelector('.esl-sb-correct-hint'); 573 if(!sbHint){ 574 sbHint=document.createElement('div'); 575 sbHint.className='esl-sb-correct-hint'; 576 hintTarget.parentNode.insertBefore(sbHint, hintTarget.nextSibling); 577 } 578 sbHint.innerHTML='<span style="font-weight:600;color:#16a34a">â Correct sentence:</span> <span style="color:#0f172a">'+ 579 correctTexts.join(' ')+'</span>'; 580 } 581 } else { 582 var sel=block.querySelector('.esl-option.esl-selected'); 583 isCorrect=!!sel&&sel.dataset.correct==='1'; 584 block.querySelectorAll('.esl-option').forEach(function(o){ 585 if(o.dataset.correct==='1') o.classList.add('esl-correct'); 586 else if(o.classList.contains('esl-selected')) o.classList.add('esl-wrong'); 587 o.style.pointerEvents='none'; 588 }); 589 } 590 591 if(isCorrect) correct_count++; 592 checked++; 593 // Analytics: answer checked 594 window.dataLayer && window.dataLayer.push({event:'quiz_answer',test_id:894,question_index:checked,question_type:type,is_correct:isCorrect}); 595 // Sound feedback 596 if(window.eslSFX){ isCorrect ? eslSFX.correct() : eslSFX.wrong(); } 597 598 var fb = document.getElementById('esl-mini-fb-'+qid); 599 if(fb){ 600 fb.classList.add('esl-show', isCorrect?'esl-fb-correct':'esl-fb-wrong'); 601 var icon=fb.querySelector('.esl-fb-icon'), txt=fb.querySelector('.esl-fb-text'); 602 if(icon) icon.textContent = isCorrect?'â':'â'; 603 var correctMsgs = ['Correct!','Great job!','Nailed it!','Perfect!','Well done!']; 604 var wrongMsgs = ['Not quite.','Incorrect.','Keep trying!','Almost!']; 605 if(txt) txt.textContent = isCorrect 606 ? correctMsgs[Math.floor(Math.random()*correctMsgs.length)] 607 : wrongMsgs[Math.floor(Math.random()*wrongMsgs.length)]; 608 // Confetti on correct 609 if(isCorrect && typeof miniConfetti==='function') miniConfetti(fb); 610 } 611 612 // Add correct/wrong visual to sentence answer area 613 if(type==='sentence_building'){ 614 var sbAnsEl = block.querySelector('.esl-sentence-answer'); 615 if(sbAnsEl) sbAnsEl.classList.add(isCorrect?'esl-sb-correct':'esl-sb-wrong'); 616 } 617 618 if(current===TOTAL-1){ 619 btnSub.style.display=''; 620 setTimeout(function(){ btnSub.scrollIntoView({behavior:'smooth',block:'nearest'}); },400); 621 } 622 } 623 624 function doSubmit(){ 625 if(btnSub.disabled) return; 626 btnSub.disabled=true; btnSub.textContent='Submittingâ¦'; 627 var timeSpent = Math.round((Date.now()-started)/1000); 628 629 if(LOGGED){ 630 /* Logged-in: submit to API â xp_cap=MINI_XP_MAX (5) so server caps correctly */ 631 fetch(REST+'tests/'+TESTID+'/submit',{ 632 method:'POST', 633 headers:{'Content-Type':'application/json','X-WP-Nonce':NONCE}, 634 body:JSON.stringify({answers:answers, time_spent:timeSpent, xp_cap:MINI_XP_MAX}) 635 }).then(function(r){return r.json();}) 636 .then(function(res){ 637 if(res && res.score_pct!==undefined){ showLoggedResult(res, correct_count); } 638 else { showLoggedResult(null, correct_count); } 639 }).catch(function(){ showLoggedResult(null, correct_count); }); 640 } else { 641 /* Guest: park the answers, then show the capture card. */ 642 var parked = eslParkResult(TESTID, answers, timeSpent, MINI_XP_MAX); 643 eslPingGuestResult(TESTID); 644 showGuestResult(correct_count, parked); 645 } 646 } 647 648 /* â docs/tests/article-tab-render.php.md §5 â v1.6.17 â park a guest result so signing in can CLAIM it */ 649 function eslParkResult(testId, ans, secs, xpCap){ 650 try{ 651 // Nothing answered = nothing worth claiming. Parking {} would hand a 652 // brand-new account a 0% result row, 1 XP and a streak day for free. 653 var any = false, k; 654 for(k in ans){ if(Object.prototype.hasOwnProperty.call(ans,k)){ any = true; break; } } 655 if(!any) return false;
656 var payload = {id:testId, answers:ans, time_spent:secs||0, ts:Date.now(), tries:0}; 657 if(xpCap) payload.xp_cap = xpCap; 658 window.localStorage.setItem(PKEY, JSON.stringify(payload)); 659 /* â docs/tests/article-tab-render.php.md §12 â Short on purpose. This cookie is the only thing linking a parked */ 660 document.cookie = PKEY + '=1; path=/; max-age=' + PTTL + '; SameSite=Lax'; 661 return true; 662 }catch(e){ return false; } 663 } 664 var PKEY = 'esl_pending_result'; 665 var PTTL = 7200; 666 function eslPingGuestResult(testId){ 667 try{ 668 fetch(REST+'growth/guest-result',{ 669 method:'POST', credentials:'same-origin', 670 headers:{'Content-Type':'application/json'}, 671 body:JSON.stringify({test:testId}) 672 })['catch'](function(){}); 673 }catch(e){} 674 } 675 // Only /login/ reads redirect_to (forum/shortcodes/login.php). The signup 676 // handler routes by audience instead, so adding it there would be dead 677 // weight in the URL. 678 function eslClaimUrl(base){ 679 var u = base + '?src=quiz_result'; 680 if(base.indexOf('/login') === 0){ 681 try{ u += '&redirect_to=' + encodeURIComponent(location.href.split('#')[0]); }catch(e){} 682 } 683 return u; 684 } 685 686 /* â docs/tests/article-tab-render.php.md §3 â v1.9.29 (C4) â "WHAT NEXT?" */ 687 function eslEsc(s){ 688 return String(s == null ? '' : s) 689 .replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') 690 .replace(/"/g,'"').replace(/'/g,'''); 691 } 692 /* Má»t gợi ý trá» vá» ÄÃNG trang Äang má» còn tá» hÆ¡n không gợi ý gì: nó 693 trông như má»t ÄÆ°á»ng ra nhưng không ÄÆ°a ngưá»i ta Äi Äâu cả. */ 694 function eslSamePage(u){ 695 try{ 696 var a = document.createElement('a'); a.href = u; 697 return a.pathname.replace(/\/+$/,'') === location.pathname.replace(/\/+$/,''); 698 }catch(e){ return false; } 699 } 700 function eslNextBlock(res){ 701 var n = (res && res.next_step && res.next_step.url) ? res.next_step : null; 702 if (n && eslSamePage(n.url)) { n = null; } 703 704 var rows = ''; 705 if (n) { 706 rows += '<a class="esl-c4row" href="'+eslEsc(n.url)+'">' 707 + '<span class="esl-c4row__t">'+eslEsc(n.title)+'</span>' 708 + (n.why ? '<span class="esl-c4row__w">'+eslEsc(n.why)+'</span>' : '') 709 + '<span class="esl-c4row__go">'+eslEsc(n.cta || 'Start')+' â</span></a>'; 710 } else if (CATURL) { 711 rows += '<a class="esl-c4row" href="'+eslEsc(CATURL)+'">' 712 + '<span class="esl-c4row__t">More '+eslEsc(CATNAME)+'</span>' 713 + '<span class="esl-c4row__w">Lessons and quizzes on the same topic</span>' 714 + '<span class="esl-c4row__go">Browse â</span></a>'; 715 } 716 717 /* â docs/tests/article-tab-render.php.md §7 â GIÃO VIÃN. Không há»i cookie, không há»i vai trò: chá» há»i "nút giao */ 718 if (document.querySelector('[data-esl-as="open"]')) { 719 rows += '<button type="button" class="esl-c4row" data-esl-c4="assign">' 720 + '<span class="esl-c4row__t">Set this for your class</span>' 721 + '<span class="esl-c4row__w">They get it as homework, and you see each score</span>' 722 + '<span class="esl-c4row__go">Assign â</span></button>'; 723 } 724 725 if (!rows) { return ''; } 726 return '<div class="esl-c4next"><p class="esl-c4next__h">What next?</p>'+rows+'</div>'; 727 } 728 /* â docs/tests/article-tab-render.php.md §9 â Nút giao bà i Äã có sẵn trên trang và Äã mang Äá»§ data-src / data-ref */ 729 function eslWireC4(root){ 730 if (!root) { return; } 731 var b = root.querySelector('[data-esl-c4="assign"]'); 732 if (!b) { return; } 733 b.addEventListener('click', function(){ 734 var t = document.querySelector('[data-esl-as="open"]'); 735 if (t) { t.click(); } 736 }); 737 } 738 739 var PASS_THRESHOLD = Math.ceil(TOTAL * 0.6); // 60% = 3/5 740 function showLoggedResult(res, correctN){ 741 var shownTotal = TOTAL; 742 /* â docs/tests/article-tab-render.php.md §15 â v1.6.21 â the server now grades exactly these 5 questions, and it is */ 743 var pct = Math.round(correctN / TOTAL * 100); 744 var passed = correctN >= PASS_THRESHOLD; 745 if (res && res.score_pct !== undefined && res.score_pct !== null) { 746 var spct = parseInt(res.score_pct, 10); 747 if (!isNaN(spct)) { pct = spct; } 748 passed = !!res.passed; 749 /* â docs/tests/article-tab-render.php.md §14 â Take the headline count from the same place as the percentage. */ 750 if (res.detail) { 751 var sc = 0, sn = 0, dk; 752 for (dk in res.detail) { 753 if (!Object.prototype.hasOwnProperty.call(res.detail, dk)) { continue; } 754 sn++; 755 if (res.detail[dk] && res.detail[dk].correct) { sc++; } 756 }
757 // Denominator too: TOTAL was baked into this page when it was 758 // cached, and the graded slice can be smaller if the test shrank. 759 if (sn > 0) { correctN = sc; shownTotal = sn; } 760 } 761 } 762 // Analytics: mini quiz completed 763 window.dataLayer && window.dataLayer.push({event:'quiz_complete',test_id:894,score_pct:pct,passed:passed,logged_in:true,total_questions:shownTotal,questions_answered:checked,quiz_type:'mini'}); 764 // Sound effects 765 if(window.eslSFX){ 766 setTimeout(function(){ passed ? eslSFX.pass() : eslSFX.fail(); }, 300); 767 if(passed) setTimeout(function(){ eslSFX.xp(); }, 900); 768 if(pct === 100) setTimeout(function(){ eslSFX.perfect(); }, 400); 769 } 770 /* â docs/tests/article-tab-render.php.md §11 â XP: prefer what the server actually stored (v1.6.21 â the mini quiz */ 771 var xp = (res && res.xp_earned !== undefined && res.xp_earned !== null) 772 ? parseInt(res.xp_earned, 10) 773 : Math.max(1, Math.round(pct / 100 * MINI_XP_MAX)); 774 if (isNaN(xp) || xp < 0) { xp = 0; } 775 if (V2 && window.eslResult) { 776 var box = window.eslResult.render(wrap, {kind:'mini', logged:true, correct:correctN, total:shownTotal, pct:pct, passed:passed, 777 xp:xp, streak:(res && res.streak ? res.streak : 0), level:LVL, 778 nextUrl:(FULLURL && FULLCOUNT>TOTAL) ? FULLURL : '', nextLabel:'Take the full '+FULLCOUNT+'-question test →', 779 extra:eslNextBlock(res)}); 780 eslWireC4(box); 781 return; 782 } 783 var html = '<div class="esl-result-screen" style="padding:28px 24px;text-align:center">'; 784 html += '<div style="font-size:48px;margin-bottom:8px">'+(correctN===shownTotal?'ð':correctN>=3?'ð':'ðª')+'</div>'; 785 html += '<h3 class="esl-result-title" style="margin-bottom:6px">You got '+correctN+'/'+shownTotal+' correct!</h3>'; 786 if(xp>0){ 787 html += '<div class="esl-xp-toast" style="margin:12px auto">â¡ +'+xp+' XP earned!</div>'; 788 } 789 var stk = res && res.streak ? res.streak : 0; 790 if(stk>=1){ 791 html += '<div style="margin:0 auto 6px;color:#475569;font-size:13px">ð¥ Day '+stk+' of your streak'+(stk>=2?' â don\'t break it tomorrow.':' â come back tomorrow to make it 2.')+'</div>'; 792 } 793 html += '<div class="esl-result-stats" style="margin:16px 0">'; 794 html += '<div class="esl-result-stat"><strong>'+pct+'%</strong><span>Score</span></div>'; 795 html += '<div class="esl-result-stat"><strong>'+correctN+'/'+shownTotal+'</strong><span>Correct</span></div>'; 796 html += '</div>'; 797 798 /* CTA to full test */ 799 if(FULLURL && FULLCOUNT>TOTAL){ 800 html += '<a href="'+FULLURL+'" style="display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;padding:13px 24px;border-radius:50px;font-size:14px;font-weight:700;text-decoration:none;margin-bottom:12px">'; 801 html += 'ð Take the Full '+FULLCOUNT+'-Question Test â Earn up to +'+FULL_TEST_XP+' XP</a>'; 802 html += '<p style="font-size:12px;color:#64748b;margin:0">Complete the full test to climb the leaderboard!</p>'; 803 } 804 html += eslNextBlock(res); 805 html += '<div style="margin-top:14px"><button class="esl-btn esl-btn-outline" onclick="location.reload()">Try again</button></div>'; 806 html += '</div>'; 807 wrap.innerHTML = html; 808 eslWireC4(wrap); 809 } 810 811 function showGuestResult(correctN, parked){ 812 // Analytics: mini quiz completed (guest) + signup prompt 813 var pctG = Math.round(correctN / TOTAL * 100); 814 window.dataLayer && window.dataLayer.push({event:'quiz_complete',test_id:894,score_pct:pctG,logged_in:false,total_questions:TOTAL,quiz_type:'mini'}); 815 window.dataLayer && window.dataLayer.push({event:'signup_prompt_shown',test_id:894,trigger:'quiz_complete'}); 816 if (V2 && window.eslResult) { 817 var box = window.eslResult.render(wrap, {kind:'mini', logged:false, correct:correctN, total:TOTAL, pct:pctG, xp:MINI_XP_MAX, parked:parked, 818 signupUrl:eslClaimUrl('/signup/'), loginUrl:eslClaimUrl('/login/'), 819 nextUrl:(FULLURL && FULLCOUNT>TOTAL) ? FULLURL : '', nextLabel:'Take the full '+FULLCOUNT+'-question test →', 820 extra:eslNextBlock(null)}); 821 eslWireC4(box); 822 return; 823 } 824 var html = '<div class="esl-result-screen" style="padding:28px 24px;text-align:center">'; 825 html += '<div style="font-size:48px;margin-bottom:8px">'+(correctN===TOTAL?'\uD83C\uDFC6':correctN>
825=3?'\uD83D\uDC4F':'\uD83D\uDCAA')+'</div>'; 826 html += '<h3 class="esl-result-title" style="margin-bottom:6px">You got '+correctN+'/'+TOTAL+' correct \u2014 '+pctG+'%</h3>'; 827 html += '<div style="background:rgba(39,169,203,.08);border:1.5px solid rgba(39,169,203,.25);border-radius:12px;padding:16px 18px;margin:16px 0;text-align:left">'; 828 if(parked){ 829 html += '<p style="margin:0 0 10px;font-size:15px;font-weight:800;color:#0f172a">Keep this result \u2014 free account</p>'; 830 html += '<ul style="margin:0 0 14px;padding-left:18px;font-size:13.5px;color:#334155;line-height:1.75">'; 831 html += '<li>This score is saved and the XP is added \u2014 nothing is retyped</li>'; 832 html += '<li>\uD83D\uDD25 Your daily streak starts today</li>'; 833 html += '<li>Every question you missed goes to your Mistake Notebook to redo</li>'; 834 html += '</ul>'; 835 } else { 836 html += '<p style="margin:0 0 12px;font-size:15px;font-weight:800;color:#0f172a">Free account \u2014 save your scores, XP and streak</p>'; 837 } 838 html += '<div style="display:flex;gap:10px;flex-wrap:wrap">'; 839 html += '<a href="'+eslClaimUrl('/signup/')+'" style="background:linear-gradient(135deg,#0f7ea4,#27a9cb);color:#fff;padding:11px 22px;border-radius:50px;font-size:13.5px;font-weight:800;text-decoration:none">'+(parked?'Save my result \u2014 free':'Create a free account')+'</a>'; 840 html += '<a href="'+eslClaimUrl('/login/')+'" style="background:#f4f8fb;border:1.5px solid #e3ebf3;color:#0f172a;padding:11px 20px;border-radius:50px;font-size:13.5px;font-weight:700;text-decoration:none">I already have one</a>'; 841 html += '</div>'; 842 html += '<p style="margin:10px 0 0;font-size:11.5px;color:#94a3b8">Free forever. No card. All 80+ tools stay free either way.</p>'; 843 html += '</div>'; 844 if(FULLURL && FULLCOUNT>TOTAL){ 845 html += '<p style="font-size:13px;color:#475569;margin:0 0 8px">Ready for the full '+FULLCOUNT+'-question test?</p>'; 846 html += '<a href="'+FULLURL+'" style="display:inline-flex;align-items:center;gap:6px;border:1.5px solid #27a9cb;color:#0f7ea4;padding:10px 20px;border-radius:50px;font-size:13px;font-weight:700;text-decoration:none;margin-bottom:12px">View Full Test \u2192</a>'; 847 } 848 html += eslNextBlock(null); 849 html += '<div style="margin-top:14px"><button class="esl-btn esl-btn-outline" onclick="location.reload()">Try again</button></div>'; 850 html += '</div>'; 851 wrap.innerHTML = html; 852 eslWireC4(wrap); 853 } 854 855 showBlock(0); 856 })();</script>
856 <aside class="esl-fulltest-cta" aria-label="Full test"><div class="esl-fulltest-cta__text"><p class="esl-fulltest-cta__eyebrow">Full assessment</p><p class="esl-fulltest-cta__headline">Articles Practice Test (A1-B2) â Grammar Exercises with Answers</p><p class="esl-fulltest-cta__sub">20 questions · timed mode · full feedback</p></div> <a class="esl-fulltest-cta__btn" href="https://7esl.com/practice/grammar/articles-test/"> Take the full test <svg viewBox="0 0 24 24" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg> </a></aside></section><section class="sevenesl-helpful-widget inside-article" data-helpful-object-type="term" data-helpful-object-id="37395" data-helpful-storage-key="sevenesl_helpful_term_37395"><div class="sevenesl-helpful-widget__inner"><div class="sevenesl-helpful-widget__copy"><p class="sevenesl-helpful-widget__eyebrow">Quick Feedback</p><h2 class="sevenesl-helpful-widget__title">Is this article helpful?</h2></div><div class="sevenesl-helpful-widget__actions" role="group" aria-label="Was this article helpful?"> <button type="button" class="sevenesl-helpful-button is-yes" data-helpful-vote="yes" aria-pressed="false"> <span class="sevenesl-helpful-button__icon" aria-hidden="true">ð</span> <span class="sevenesl-helpful-button__label">Yes</span> <span class="sevenesl-helpful-button__count" data-helpful-count="yes">24</span> </button> <button type="button" class="sevenesl-helpful-button is-no" data-helpful-vote="no" aria-pressed="false"> <span class="sevenesl-helpful-button__icon" aria-hidden="true">â¹ï¸</span> <span class="sevenesl-helpful-button__label">No</span> <span class="sevenesl-helpful-button__count" data-helpful-count="no">0</span> </button></div><p class="sevenesl-helpful-widget__status" data-helpful-status aria-live="polite"></p></div></section><section class="sevenesl-helpful-related inside-article" aria-label="Other Students Also Like"><div class="sevenesl-helpful-related__header"><p class="sevenesl-helpful-related__eyebrow">Related posts</p><h2 class="sevenesl-helpful-related__title">Other Students Also Like</h2></div><div class="sevenesl-helpful-related__grid"><article class="sevenesl-helpful-related-card"> <a class="sevenesl-helpful-related-card__link" href="https://7esl.com/a-versus-an/"> <span class="sevenesl-helpful-related-card__kicker">Articles</span><div class="sevenesl-helpful-related-card__top"> <span class="sevenesl-helpful-related-card__meta">ð 5</span></div><h3 class="sevenesl-helpful-related-card__title">A vs. An: Mastering the Basics of English Articles</h3><p class="sevenesl-helpful-related-card__summary">When speaking or writing in English, you will notice that there are two forms of the indefinite article, âaâ andâ¦</p> </a></article><article class="sevenesl-helpful-related-card"> <a class="sevenesl-helpful-related-card__link" href="https://7esl.com/use-no-article-rules/"> <span class="sevenesl-helpful-related-card__kicker">Articles</span><div class="sevenesl-helpful-related-card__top"> <span class="sevenesl-helpful-related-card__meta">ð 3</span></div><h3 class="sevenesl-helpful-related-card__title">When to Use No Article in English with 7 Useful Rules</h3><p class="sevenesl-helpful-related-card__summary">Understanding when to use no article in English is essential for mastering grammar. This article covers key rules and providesâ¦</p> </a></article><article class="sevenesl-helpful-related-card"> <a class="sevenesl-helpful-related-card__link" href="https://7esl.com/rules-for-using-the/"> <span class="sevenesl-helpful-related-card__kicker">Articles</span><div class="sevenesl-helpful-related-card__top"> <span class="sevenesl-helpful-related-card__meta">ð 3</span></div><h3 class="sevenesl-helpful-related-card__title">When to Use THE: Essential Rules for English Learners</h3><p class="sevenesl-helpful-related-card__summary">The article covers key information about the definite article "THE," including its rules and proper usage. You will learn whenâ¦</p> </a></article></div></section><section class="ar-list ar-box"><div class="ar-head"><div><p class="eu-eyebrow">Curated list</p><h2 class="ar-h2">More Articles in Articles</h2></div><div class="eu-count"><b>5</b> articles</div></div><ol class="ar-ol"><li class="ar-c">
856<script>document.addEventListener("error",function(e){var i=e.target,f=i&&"IMG"===i.tagName&&i.closest&&i.closest(".eu-fig");if(f){f.classList.add("eu-fig--x");f.querySelectorAll("img").forEach(function(x){x.remove()})}},true);</script>
856 <div class="eu-fig eu-fig--b eu-fig--n eu-t--grammar" data-e="ð"><img class="eu-fig__bg" alt="" aria-hidden="true" data-pin-nopin="true" src="https://7esl.com/wp-content/uploads/2018/01/How-to-use-a-an-1.jpg" width="3000" height="3700" loading="lazy" decoding="async"><img src="https://7esl.com/wp-content/uploads/2018/01/How-to-use-a-an-1.jpg" width="3000" height="3700" alt="" loading="lazy" decoding="async"></div><a href="https://7esl.com/a-versus-an/"><span class="ar-c__t">A vs. An: Mastering the Basics of English Articles</span></a></li><li class="ar-c"><div class="eu-fig eu-fig--b eu-fig--n eu-t--grammar" data-e="ð"><img class="eu-fig__bg" alt="" aria-hidden="true" data-pin-nopin="true" src="https://7esl.com/wp-content/uploads/2018/01/conunt-and-noncount-nouns-with-articles.jpg" width="3000" height="2000" loading="lazy" decoding="async"><img src="https://7esl.com/wp-content/uploads/2018/01/conunt-and-noncount-nouns-with-articles.jpg" width="3000" height="2000" alt="" loading="lazy" decoding="async"></div><a href="https://7esl.com/articles-with-countable-and-uncountable-nouns/"><span class="ar-c__t">Articles with Countable and Uncountable Nouns</span></a></li><li class="ar-c"><div class="eu-fig eu-fig--b eu-t--grammar" data-e="ð"><img class="eu-fig__bg" alt="" aria-hidden="true" data-pin-nopin="true" width="768" height="1086" src="https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-768x1086.jpg" loading="lazy" decoding="async" sizes="auto, (min-width:1024px) 260px, (min-width:600px) 30vw, 45vw" srcset="https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-768x1086.jpg 768w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-212x300.jpg 212w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-724x1024.jpg 724w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-1086x1536.jpg 1086w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet.jpg 1414w" /><img width="768" height="1086" src="https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-768x1086.jpg" class="attachment-medium_large size-medium_large" alt="" loading="lazy" decoding="async" sizes="auto, (min-width:1024px) 260px, (min-width:600px) 30vw, 45vw" srcset="https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-768x1086.jpg 768w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-212x300.jpg 212w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-724x1024.jpg 724w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet-1086x1536.jpg 1086w, https://7esl.com/wp-content/uploads/2025/05/Colorful-Iluustrated-A-and-An-Worksheet.jpg 1414w" /></div><a href="https://7esl.com/article-worksheets/"><span class="ar-c__t">Mastering Articles in English: Practice Exercises & Downloadable Worksheets</span></a></li><li class="ar-c"><div class="eu-fig eu-fig--b eu-t--grammar" data-e="ð"><img class="eu-fig__bg" alt="" aria-hidden="true" data-pin-nopin="true" width="768" height="960" src="https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-768x960.jpg" loading="lazy" decoding="async" sizes="auto, (min-width:1024px) 260px, (min-width:600px) 30vw, 45vw" srcset="https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-768x960.jpg 768w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-460x575.jpg 460w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-819x1024.jpg 819w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-48x60.jpg 48w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-96x120.jpg 96w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-310x388.jpg 310w" /><img width="768" height="960" src="https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-768x960.jpg" class="attachment-medium_large size-medium_large" alt="" loading="lazy" decoding="async" sizes="auto, (min-width:1024px) 260px, (min-width:600px) 30vw, 45vw" srcset="https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-768x960.jpg 768w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-460x575.jpg 460w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-819x1024.jpg 819w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-48x60.jpg 48w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-96x120.jpg 96w, https://7esl.com/wp-content/uploads/2018/01/rules-for-using-no-article-2-2-310x388.jpg 310w" /></div><a href="https://7esl.com/use-no-article-rules/"><span class="ar-c__t">
856When to Use No Article in English with 7 Useful Rules</span></a></li><li class="ar-c"><div class="eu-fig eu-fig--b eu-fig--n eu-t--grammar" data-e="ð"><img class="eu-fig__bg" alt="" aria-hidden="true" data-pin-nopin="true" src="https://7esl.com/wp-content/uploads/2018/01/The-Article-%E2%80%9CThe%E2%80%9D-in-Geographical-Names-1.jpg" width="3700" height="4700" loading="lazy" decoding="async"><img src="https://7esl.com/wp-content/uploads/2018/01/The-Article-%E2%80%9CThe%E2%80%9D-in-Geographical-Names-1.jpg" width="3700" height="4700" alt="" loading="lazy" decoding="async"></div><a href="https://7esl.com/rules-for-using-the/"><span class="ar-c__t">When to Use THE: Essential Rules for English Learners</span></a></li></ol></section></main></div><div class="widget-area sidebar is-right-sidebar" id="right-sidebar"><div class="inside-right-sidebar"><aside class="widget sevenesl-sidebar-search-widget" aria-label="Search 7ESL"><form role="search" method="get" class="sevenesl-sidebar-search-form" action="https://7esl.com/" data-sevenesl-popup-search="true"><label class="screen-reader-text" for="sevenesl-sidebar-search-input-1">Search 7ESL</label><div class="sevenesl-sidebar-search-form__inner"><input type="search" id="sevenesl-sidebar-search-input-1" class="sevenesl-sidebar-search-form__field" placeholder="Search" value="" name="s" autocomplete="off" /><button type="submit" class="sevenesl-sidebar-search-form__button" aria-label="Search"><svg viewBox="0 0 24 24" focusable="false" aria-hidden="true"><path d="M10.5 4.75a5.75 5.75 0 1 0 0 11.5a5.75 5.75 0 0 0 0-11.5Zm0-1.5a7.25 7.25 0 1 1 0 14.5a7.25 7.25 0 0 1 0-14.5Zm6.23 12.42l3.52 3.52a.75.75 0 1 1-1.06 1.06l-3.52-3.52a.75.75 0 1 1 1.06-1.06Z" fill="currentColor"></path></svg></button></div></form></aside><aside id="text-6" class="widget inner-padding widget_text"><div class="textwidget"><div class="esl-lbw "><div class="esl-lbw__head"><span aria-hidden="true">ð</span> Weekly Top 5</div><div class="esl-lbw__list"> <a href="https://7esl.com/profile/?u=9776" class="esl-lbw__row" title="Judy Beth Lazaro"> <span class="esl-lbw__rank">ð¥</span> <img decoding="async" class="esl-lbw__av" src="https://7esl.com/wp-content/uploads/nsl_avatars/5bd460c0f788984f187ae93830eb81e4.png" alt="" width="34" height="34" loading="lazy" 857onerror="this.onerror=null;this.src='https://www.gravatar.com/avatar/?d=mp';"> <span class="esl-lbw__name">Judy Beth Lazaro</span> <span class="esl-lbw__xp">+216 XP</span> </a> <a href="https://7esl.com/profile/?u=10002" class="esl-lbw__row" title="May Moe"> <span class="esl-lbw__rank">ð¥</span> <img decoding="async" class="esl-lbw__av" src="https://7esl.com/wp-content/uploads/nsl_avatars/fa3c7c40b0e7a7c6eb267bfd839bd0fb.jpg" alt="" width="34" height="34" loading="lazy" 858onerror="this.onerror=null;this.src='https://www.gravatar.com/avatar/?d=mp';"> <span class="esl-lbw__name">May Moe</span> <span class="esl-lbw__xp">+134 XP</span> </a> <a href="https://7esl.com/profile/?u=9744" class="esl-lbw__row" title="Aulia Yustisia D"> <span class="esl-lbw__rank">ð¥</span> <img decoding="async" class="esl-lbw__av" src="https://7esl.com/wp-content/uploads/nsl_avatars/1c14feec28a1b2892b965b517595eafa.jpg" alt="" width="34" height="34" loading="lazy" 859onerror="this.onerror=null;this.src='https://www.gravatar.com/avatar/?d=mp';"> <span class="esl-lbw__name">Aulia Yustisia D</span> <span class="esl-lbw__xp">+96 XP</span> </a> <a href="https://7esl.com/profile/?u=9596" class="esl-lbw__row" title="Thuy Test"> <span class="esl-lbw__rank esl-lbw__rank--num">4</span> <img decoding="async" class="esl-lbw__av" src="https://7esl.com/wp-content/uploads/nsl_avatars/e4bd5625da3903c975a622fb01a2e96e.png" alt="" width="34" height="34" loading="lazy" 860onerror="this.onerror=null;this.src='https://www.gravatar.com/avatar/?d=mp';"> <span class="esl-lbw__name">Thuy Test</span> <span class="esl-lbw__xp">+71 XP</span> </a> <a href="https://7esl.com/profile/?u=7928" class="esl-lbw__row" title="Minh Thu Lê"> <span class="esl-lbw__rank esl-lbw__rank--num">5</span> <img decoding="async" class="esl-lbw__av" src="https://7esl.com/wp-content/uploads/nsl_avatars/85c8a27bcba5d6219a248485fc06bebc.webp" alt="" width="34" height="34" loading="lazy" 861onerror="this.onerror=null;this.src='https://www.gravatar.com/avatar/?d=mp';"> <span class="esl-lbw__name">Minh Thu Lê</span> <span class="esl-lbw__xp">+69 XP</span> </a></div><div class="esl-lbw__foot">Updated 47 min ago</div></div></div></aside>
861<aside id="nav_menu-19" class="widget inner-padding widget_nav_menu sevenesl-interesting-topics-widget sevenesl-topic-widget"><h2 class="widget-title">Interesting Topics</h2><div class="menu-sidebar-container"><ul id="menu-sidebar" class="menu"><li id="menu-item-102385" class="menu-item menu-item-type-taxonomy menu-item-object-category current-category-ancestor menu-item-102385"><a href="https://7esl.com/category/grammar/">Grammar</a></li><li id="menu-item-102393" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102393"><a href="https://7esl.com/category/vocabulary/">Vocabulary</a></li><li id="menu-item-102387" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102387"><a href="https://7esl.com/category/visual-vocabulary/">Visual Vocabulary</a></li><li id="menu-item-102386" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102386"><a href="https://7esl.com/category/writing/">Writing</a></li><li id="menu-item-102392" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102392"><a href="https://7esl.com/category/speaking/">Speaking</a></li><li id="menu-item-102388" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102388"><a href="https://7esl.com/category/words-list/">Words List</a></li><li id="menu-item-102467" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102467"><a href="https://7esl.com/category/slang/">Slang</a></li><li id="menu-item-102466" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102466"><a href="https://7esl.com/category/internet-slang/">Internet Slang</a></li><li id="menu-item-102468" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-102468"><a href="https://7esl.com/category/idioms/">Idioms</a></li><li id="menu-item-102390" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102390"><a href="https://7esl.com/category/foreign-language/">Foreign Words</a></li><li id="menu-item-102391" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102391"><a href="https://7esl.com/category/positive-words/">Positive Words & Phrases</a></li><li id="menu-item-102389" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102389"><a href="https://7esl.com/category/business-english/">Business English</a></li><li id="menu-item-102394" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-102394"><a href="https://7esl.com/category/american-and-british-english/">British vs. American English</a></li></ul></div></aside></div></div></div></div><div class="site-footer"></div><a title="Scroll back to top" aria-label="Scroll back to top" rel="nofollow" href="#" class="generate-back-to-top" data-scroll-speed="400" data-start-scroll="300" role="button"> <span class="gp-icon icon-arrow-up"><svg viewBox="0 0 330 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M305.863 314.916c0 2.266-1.133 4.815-2.832 6.514l-14.157 14.163c-1.699 1.7-3.964 2.832-6.513 2.832-2.265 0-4.813-1.133-6.512-2.832L164.572 224.276 53.295 335.593c-1.699 1.7-4.247 2.832-6.512 2.832-2.265 0-4.814-1.133-6.513-2.832L26.113 321.43c-1.699-1.7-2.831-4.248-2.831-6.514s1.132-4.816 2.831-6.515L158.06 176.408c1.699-1.7 4.247-2.833 6.512-2.833 2.265 0 4.814 1.133 6.513 2.833L303.03 308.4c1.7 1.7 2.832 4.249 2.832 6.515z" fill-rule="nonzero" /></svg></span> </a><footer class="escx-foot"><div class="escx-wrap escx-foot__top"><div class="escx-foot__brand"> <a href="https://7esl.com/" class="escx-logo escx-logo--foot"> <img loading="lazy" src="https://7esl.com/wp-content/plugins/7esl-core/assets/images/logo-7esl-light.svg" alt="7ESL" width="139" height="36" 862onerror="this.style.display='none';this.nextElementSibling.style.display='inline-flex'"> <span style="display:none;align-items:center;gap:8px">7<b>ESL</b></span> </a><p>Established in 2017, 7ESL is a leading global English-learning platform — clear lessons, practical tools, fun games and exam practice to help millions learn, teach and master English.</p><div class="escx-foot__social"> <a href="https://www.facebook.com/7ESLAI" aria-label="Facebook"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a> <a href="https://www.pinterest.com/7english/" aria-label="Pinterest"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2a10 10 0 0 0-3.6 19.3c-.1-.9-.1-2.2.1-3.1l1.2-5s-.3-.6-.3-1.5c0-1.4.8-2.4 1.8-2.4.9 0 1.3.6 1.3 1.4 0 .9-.5 2.1-.8 3.3-.2 1 .5 1.7 1.4 1.7 1.7 0 3-1.8 3-4.4 0-2.3-1.6-3.9-4-3.9-2.7 0-4.3 2-4.3 4.1 0 .8.3 1.7.7 2.1a.3.3 0 0 1 .1.3l-.3 1.1c0 .2-.1.2-.3.1-1.2-.5-1.9-2.3-1.9-3.7 0-3 2.2-5.7 6.3-5.7 3.3 0 5.9 2.4 5.9 5.5 0 3.3-2.1 5.9-5 5.9-1 0-1.9-.5-2.2-1.1 0 0-.5 1.9-.6 2.3-.2.8-.8 1.9-1.2 2.5A10 10 0 1 0 12 2z"/>
862</svg></a> <a href="https://www.youtube.com/channel/UCPDQgXju7hqEGBwzLIeI7Zw" aria-label="YouTube"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23 12s0-3.5-.4-5.2a2.7 2.7 0 0 0-1.9-1.9C18.9 4.5 12 4.5 12 4.5s-6.9 0-8.7.4a2.7 2.7 0 0 0-1.9 1.9C1 8.5 1 12 1 12s0 3.5.4 5.2a2.7 2.7 0 0 0 1.9 1.9c1.8.4 8.7.4 8.7.4s6.9 0 8.7-.4a2.7 2.7 0 0 0 1.9-1.9C23 15.5 23 12 23 12zM10 15.5v-7l6 3.5z"/></svg></a> <a href="https://x.com/7eslenglish" aria-label="X"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h3l-7 8 8 12h-6l-5-7-5 7H3l8-9L3 2h6l4 6z"/></svg></a></div></div><div class="escx-foot__col"><h5>Learn & Practice</h5> <a href="https://7esl.com/grammar/">Grammar</a> <a href="https://7esl.com/vocabulary/">Vocabulary</a> <a href="https://7esl.com/idioms/">Idioms</a> <a href="https://7esl.com/phrasal-verbs/">Phrasal Verbs</a> <a href="https://7esl.com/reading/">Reading Practice</a><a href="https://7esl.com/listening/">Listening Practice</a><a href="https://7esl.com/speaking/">Speaking Practice</a><a href="https://7esl.com/writing-practice/">Writing Practice</a></div><div class="escx-foot__col"><h5>Courses <span class="escx-tag">NEW</span></h5> <a href="https://7esl.com/courses/phonics/">Phonics</a><a href="https://7esl.com/courses/cambridge-starters/">Pre A1 Starters</a><a href="https://7esl.com/courses/cambridge-movers/">A1 Movers</a><a href="https://7esl.com/courses/cambridge-flyers/">A2 Flyers</a><a href="https://7esl.com/courses/cambridge-a2-key-for-schools/">A2 Key for Schools</a><a href="https://7esl.com/courses/cambridge-b1-preliminary-for-schools/">B1 Preliminary for Schools</a><a href="https://7esl.com/courses/b2-first/">B2 First</a> <a href="https://7esl.com/courses/">All Courses</a></div><div class="escx-foot__col"><h5>Tools & Games</h5> <a href="https://7esl.com/tools/">All Tools</a> <a href="https://7esl.com/learning-tools/">Learning Tools</a> <a href="https://7esl.com/writing-tools/">Writing Tools</a> <a href="https://7esl.com/word-tools/">Word Tools</a> <a href="https://7esl.com/teacher-tools/">Teacher Tools</a> <a href="https://7esl.com/picture-vocabulary/">Picture Vocabulary</a> <a href="https://7esl.com/word-games/">Word Games</a> <a href="https://7esl.com/vocabulary-games/">Vocabulary Games</a> <a href="https://7esl.com/games/">All Games</a></div><div class="escx-foot__col"><h5>Tests & Resources <span class="escx-tag escx-tag--hot">HOT</span></h5> <a href="https://7esl.com/english-level-test/">Level Test</a> <a href="https://7esl.com/exams/">Exam Practice</a> <a href="https://7esl.com/tests/">All Tests</a> <a href="https://7esl.com/worksheets/">Free Worksheets</a> <a href="https://7esl.com/category/esl-resources/esl-pdfs/">Free PDF Books</a> <a href="https://7esl.com/tutors/">Find a Tutor</a> <a href="https://7esl.com/forum/">Forums</a></div><div class="escx-foot__col"><h5>For Teachers</h5> <a href="https://7esl.com/teacher-tools/">Teacher Tools</a> <a href="https://7esl.com/worksheets/">Worksheets</a> <a href="https://7esl.com/category/esl-resources/esl-pdfs/">PDF Books</a> <a href="https://7esl.com/picture-vocabulary/">Picture Vocabulary</a> <a href="https://7esl.com/kids-games/">Kids Games</a> <a href="https://7esl.com/tutor-register/">Become a Tutor</a> <a href="https://7esl.com/signup/"><strong style="color:#cfe0ec">Free account →</strong></a></div></div><div class="escx-foot__bottom"><div class="escx-wrap"><div>© 2026 7ESL. All rights reserved.</div><div class="escx-foot__legal"> <a href="https://7esl.com/about/">About</a> <a href="https://7esl.com/editorial-policy/">Editorial Policy</a> <a href="https://7esl.com/privacy-policy/">Privacy</a> <a href="https://7esl.com/terms-of-service/">Terms</a> <a href="https://7esl.com/contact/">Contact</a></div></div></div></footer><div class="escx-dbg" id="escxDbg"></div><aside class="escx-drawer" id="escxDrawer" aria-label="Mobile menu"><div class="escx-drawer__h"> <a href="https://7esl.com/" class="escx-logo"><img loading="lazy" src="https://7esl.com/wp-content/plugins/7esl-core/assets/images/logo-7esl-dark.svg" alt="7ESL" width="116" height="30"></a> <button class="escx-icbtn" id="escxDclose" style="display:grid" aria-label="Close menu"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6L6 18M6 6l12 12"/></svg></button></div> <details><summary>
862Learn <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><span class="escx-sub__h">Courses</span><a href="https://7esl.com/courses/phonics/">Phonics</a><a href="https://7esl.com/courses/cambridge-starters/">Pre A1 Starters <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/cambridge-movers/">A1 Movers <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/cambridge-flyers/">A2 Flyers <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/cambridge-a2-key-for-schools/">A2 Key for Schools <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/cambridge-b1-preliminary-for-schools/">B1 Preliminary for Schools <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/b2-first/">B2 First <span class="escx-pro">PRO</span></a><a href="https://7esl.com/courses/">All courses</a><span class="escx-sub__h">Lessons</span><a href="https://7esl.com/grammar/">Grammar</a><a href="https://7esl.com/vocabulary/">Vocabulary</a><a href="https://7esl.com/idioms/">Idioms</a><a href="https://7esl.com/pronunciation/">Pronunciation</a></div></details> <details><summary>Practice <span class="escx-badge">NEW</span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/reading/">Reading</a><a href="https://7esl.com/listening/">Listening</a><a href="https://7esl.com/speaking/">Speaking</a><a href="https://7esl.com/writing-practice/">Writing</a></div></details> <details><summary>Tests <span class="escx-badge escx-badge--hot">HOT</span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/english-level-test/">Level Test</a><a href="https://7esl.com/exams/">Exam Practice</a><a href="https://7esl.com/practice/">Practice Tests</a></div></details> <details><summary>Tools <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/tools/">All Tools</a><a href="https://7esl.com/learning-tools/">Learning Tools</a><a href="https://7esl.com/writing-tools/">Writing Tools</a><a href="https://7esl.com/word-tools/">Word Game Tools</a><a href="https://7esl.com/picture-vocabulary/">Picture Vocabulary</a><a href="https://7esl.com/teacher-tools/">Teacher Tools</a><a href="https://7esl.com/how-to-pronounce/">Pronunciation Tools</a><a href="https://7esl.com/spelling-tools/">Spelling Tools</a></div></details> <details><summary>Games <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/word-games/">Word Games</a><a href="https://7esl.com/vocabulary-games/">Vocabulary Games</a><a href="https://7esl.com/grammar-games/">Grammar Games</a><a href="https://7esl.com/kids-games/">Kids Games</a><a href="https://7esl.com/pronunciation-games/">Pronunciation Games</a></div></details> <details data-aud-hide="teacher"><summary>Tutors <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/tutors/">Find a Tutor</a></div></details> <details><summary>For Teachers <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/teacher-tools/">Teacher Tools</a><a href="https://7esl.com/worksheets/">Worksheets</a><a href="https://7esl.com/category/esl-resources/esl-pdfs/">PDF Books</a><a href="https://7esl.com/kids-games/">Kids Games</a><a data-aud-hide="learner kid ask none" href="https://7esl.com/tutor-register/">Become a Tutor</a></div></details> <details><summary>
862Download <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#888" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></summary><div class="escx-sub"><a href="https://7esl.com/app/">Mobile App</a><a href="https://7esl.com/worksheets/">Worksheets</a><a href="https://7esl.com/category/esl-resources/esl-pdfs/">PDF Books</a></div></details> <details><summary>Forums</summary><div class="escx-sub"><a href="https://7esl.com/forum/">Community Forum</a></div></details><div class="escx-drawer__btns"> <a class="escx-btn escx-btn--ghost" href="https://7esl.com/login/">Login</a> <a class="escx-btn escx-btn--pri" href="https://7esl.com/signup/">Sign up free</a></div></aside>
862<script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/generatepress/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script>
862
862<script>function isOldIOSDevice() { 863 const userAgent = navigator.userAgent || navigator.vendor || window.opera; 864 865 // Check if it's an iOS device 866 const isIOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream; 867 868 if (!isIOS) return false; 869 870 // Extract iOS version from userAgent 871 const match = userAgent.match(/OS (\d+)_/); 872 if (match && match.length > 1) { 873 const majorVersion = parseInt(match[1], 10); 874 875 // Example: Consider iOS 12 and below as old 876 return majorVersion <= 12; 877 } 878 879 // If version not found, assume not old 880 return false; 881 } 882 if (isOldIOSDevice()) { 883 document.addEventListener('DOMContentLoaded', function() { 884 setTimeout(() => { 885 document.querySelectorAll('audio:not(.plyr audio)').forEach(function(audio, index) { 886 audio.setAttribute('controls', '') 887 }); 888 }, 3000); 889 }); 890 } 891 // ios old devices</script>
891 <svg width="0" height="0" class="h5ap_svg_hidden" style="display: none;"> <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.997 511.997" id="exchange"> <path d="M467.938 87.164L387.063 5.652c-7.438-7.495-19.531-7.54-27.02-.108s-7.54 19.525-.108 27.014l67.471 68.006-67.42 67.42c-7.464 7.457-7.464 19.557 0 27.014 3.732 3.732 8.616 5.598 13.507 5.598s9.781-1.866 13.513-5.591l80.876-80.876c7.443-7.44 7.463-19.495.056-26.965z"></path> <path d="M455.005 81.509H56.995c-10.552 0-19.104 8.552-19.104 19.104v147.741c0 10.552 8.552 19.104 19.104 19.104s19.104-8.552 19.104-19.104V119.718h378.905c10.552 0 19.104-8.552 19.104-19.104.001-10.552-8.551-19.105-19.103-19.105zM83.964 411.431l67.42-67.413c7.457-7.457 7.464-19.55 0-27.014-7.463-7.464-19.563-7.464-27.02 0l-80.876 80.869c-7.444 7.438-7.47 19.493-.057 26.963l80.876 81.512a19.064 19.064 0 0013.564 5.649c4.865 0 9.731-1.847 13.456-5.54 7.489-7.432 7.54-19.525.108-27.02l-67.471-68.006z"></path> <path d="M454.368 238.166c-10.552 0-19.104 8.552-19.104 19.104v135.005H56.995c-10.552 0-19.104 8.552-19.104 19.104s8.552 19.104 19.104 19.104h397.38c10.552 0 19.104-8.552 19.098-19.104V257.271c-.001-10.552-8.553-19.105-19.105-19.105z"></path> </symbol> </svg> <svg width="0" height="0" class="h5ap_svg_hidden" style="display: none;"> <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 477.88 477.88" id="shuffle"> <path d="M472.897 124.269a.892.892 0 01-.03-.031l-.017.017-68.267-68.267c-6.78-6.548-17.584-6.36-24.132.42-6.388 6.614-6.388 17.099 0 23.713l39.151 39.151h-95.334c-65.948.075-119.391 53.518-119.467 119.467-.056 47.105-38.228 85.277-85.333 85.333h-102.4C7.641 324.072 0 331.713 0 341.139s7.641 17.067 17.067 17.067h102.4c65.948-.075 119.391-53.518 119.467-119.467.056-47.105 38.228-85.277 85.333-85.333h95.334l-39.134 39.134c-6.78 6.548-6.968 17.353-.419 24.132 6.548 6.78 17.353 6.968 24.132.419.142-.137.282-.277.419-.419l68.267-68.267c6.674-6.657 6.687-17.463.031-24.136z"></path> <path d="M472.897 329.069l-.03-.03-.017.017-68.267-68.267c-6.78-6.548-17.584-6.36-24.132.42-6.388 6.614-6.388 17.099 0 23.712l39.151 39.151h-95.334a85.209 85.209 0 01-56.9-21.726c-7.081-6.222-17.864-5.525-24.086 1.555-6.14 6.988-5.553 17.605 1.319 23.874a119.28 119.28 0 0079.667 30.43h95.334l-39.134 39.134c-6.78 6.548-6.968 17.352-.42 24.132 6.548 6.78 17.352 6.968 24.132.42.142-.138.282-.277.42-.42l68.267-68.267c6.673-6.656 6.686-17.462.03-24.135zM199.134 149.702a119.28 119.28 0 00-79.667-30.43h-102.4C7.641 119.272 0 126.913 0 136.339s7.641 17.067 17.067 17.067h102.4a85.209 85.209 0 0156.9 21.726c7.081 6.222 17.864 5.525 24.086-1.555 6.14-6.989 5.553-17.606-1.319-23.875z"></path> </symbol> </svg>
891<script>const single_player = document.querySelectorAll(".h5ap_single_button"); 892 single_player.forEach(item => { 893 const audio = item.querySelector("audio"); 894 audio.volume = 0.6; 895 item.querySelector('.play').addEventListener("click", function() { 896 single_player.forEach(player => { 897 player.querySelector("audio")?.pause(); 898 }) 899 setTimeout(() => { 900 audio.currentTime = 0; 901 audio.play(); 902 }, 0); 903 904 }); 905 906 item.querySelector('.pause').style.display = 'none'; 907 item.querySelector('.pause').addEventListener("click", function() { 908 audio.pause(); 909 }); 910 911 audio.addEventListener("ended", () => { 912 item.querySelector(".play").style.display = 'inline-block'; 913 item.querySelector(".pause").style.display = 'none'; 914 }); 915 916 audio.addEventListener("pause", () => { 917 item.querySelector(".play").style.display = 'inline-block'; 918 item.querySelector(".pause").style.display = 'none'; 919 }); 920 audio.addEventListener("play", () => { 921 item.querySelector(".play").style.display = 'none'; 922 item.querySelector(".pause").style.display = 'inline-block'; 923 }); 924 925 })</script>
925
925<script id="generate-a11y">!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("pointerdown",(function(){e.classList.add("using-mouse")}),{passive:!0}),e.addEventListener("keydown",(function(){e.classList.remove("using-mouse")}),{passive:!0})}}();</script>
925
925<script id="thinklab-js-js-extra">var ESL_TL = {"scope":"body.single-post .inside-article .entry-content","legacy":""}; 926//# sourceURL=thinklab-js-js-extra</script>
926
926<script id="generate-menu-js-before">var generatepressMenu = {"toggleOpenedSubMenus":true,"openSubMenuLabel":"Open Sub-Menu","closeSubMenuLabel":"Close Sub-Menu"}; 927//# sourceURL=generate-menu-js-before</script>
927
927<script id="generate-back-to-top-js-before">var generatepressBackToTop = {"smooth":true}; 928//# sourceURL=generate-back-to-top-js-before</script>
928
928<script id="breeze-lazy-js-after">document.addEventListener("DOMContentLoaded", function () { 929 if ( "function" !== typeof window.LazyLoad && "function" !== typeof LazyLoad ) { 930 return; 931 } 932 933 var breezeLazyLoad = window.LazyLoad || LazyLoad; 934 935 window.lazyLoadInstance = new breezeLazyLoad({ 936 elements_selector: ".br-lazy", 937 data_src: "breeze", 938 data_srcset: "brsrcset", 939 data_sizes: "brsizes", 940 class_loaded: "br-loaded", 941 threshold: 300, 942 }); 943 }); 944//# sourceURL=breeze-lazy-js-after</script>
944
944<script id="esl-tests-js-js-extra">var eslTests = {"ajaxUrl":"https://7esl.com/wp-admin/admin-ajax.php","restUrl":"https://7esl.com/wp-json/esl/v1/","nonce":"06d84125a1","userId":"0","is_paid":"0","profileUrl":"https://7esl.com/profile/"}; 945//# sourceURL=esl-tests-js-js-extra</script>
945
945<script id="esl-article-tabs-js-js-extra">var eslArticleTabs = {"context":"category","contextId":"37395","postId":"0","testId":"894","xpReward":"5","testTitle":"Articles Practice Test (A1-B2) \u2014 Grammar Exercises with Answers","loggedIn":"","passScore":"60","timeLimit":"600"}; 946//# sourceURL=esl-article-tabs-js-js-extra</script>
946
946<script id="sevenesl-sidebar-search-js-extra">var seveneslSidebarSearch = {"ajaxUrl":"https://7esl.com/wp-admin/admin-ajax.php","nonce":"1ff38f333f","homeUrl":"https://7esl.com/"}; 947//# sourceURL=sevenesl-sidebar-search-js-extra</script>
947
947<script id="sevenesl-helpful-vote-js-extra">var seveneslHelpfulVote = {"ajaxUrl":"https://7esl.com/wp-admin/admin-ajax.php","nonce":"f5d4111456"}; 948//# sourceURL=sevenesl-helpful-vote-js-extra</script>
948
948<script type="text/javascript">(function (undefined) {let scriptOptions={"_localizedStrings":{"redirect_overlay_title":"Hold On","redirect_overlay_text":"You are being redirected to another page,<br>it may take a few seconds.","webview_notification_text":"The selected provider doesn't support embedded browsers!"},"_targetWindow":"prefer-popup","_redirectOverlay":"overlay-with-spinner-and-message","_unsupportedWebviewBehavior":""}; 949/** 950 * Used when Cross-Origin-Opener-Policy blocked the access to the opener. We can't have a reference of the opened windows, so we should attempt to refresh only the windows that has opened popups. 951 */ 952window._nslHasOpenedPopup = false; 953window._nslWebViewNoticeElement = null; 954 955window.NSLPopup = function (url, title, w, h) { 956 957 /** 958 * Cross-Origin-Opener-Policy blocked the access to the opener 959 */ 960 if (typeof BroadcastChannel === "function") { 961 const _nslLoginBroadCastChannel = new BroadcastChannel('nsl_login_broadcast_channel'); 962 _nslLoginBroadCastChannel.onmessage = (event) => { 963 if (window?._nslHasOpenedPopup && event.data?.action === 'redirect') { 964 window._nslHasOpenedPopup = false; 965 966 const url = event.data?.href; 967 _nslLoginBroadCastChannel.close(); 968 if (typeof window.nslRedirect === 'function') { 969 window.nslRedirect(url); 970 } else { 971 window.opener.location = url; 972 } 973 } 974 }; 975 } 976 977 const userAgent = navigator.userAgent, 978 mobile = function () { 979 return /\b(iPhone|iP[ao]d)/.test(userAgent) || 980 /\b(iP[ao]d)/.test(userAgent) || 981 /Android/i.test(userAgent) || 982 /Mobile/i.test(userAgent); 983 }, 984 screenX = window.screenX !== undefined ? window.screenX : window.screenLeft, 985 screenY = window.screenY !== undefined ? window.screenY : window.screenTop, 986 outerWidth = window.outerWidth !== undefined ? window.outerWidth : document.documentElement.clientWidth, 987 outerHeight = window.outerHeight !== undefined ? window.outerHeight : document.documentElement.clientHeight - 22, 988 targetWidth = mobile() ? null : w, 989 targetHeight = mobile() ? null : h, 990 left = parseInt(screenX + (outerWidth - targetWidth) / 2, 10), 991 right = parseInt(screenY + (outerHeight - targetHeight) / 2.5, 10), 992 features = []; 993 if (targetWidth !== null) { 994 features.push('width=' + targetWidth); 995 } 996 if (targetHeight !== null) { 997 features.push('height=' + targetHeight); 998 } 999 features.push('left=' + left); 1000 features.push('top=' + right); 1001 features.push('scrollbars=1'); 1002 1003 const newWindow = window.open(url, title, features.join(',')); 1004 1005 if (window.focus) { 1006 newWindow.focus(); 1007 } 1008 1009 window._nslHasOpenedPopup = true; 1010 1011 return newWindow; 1012}; 1013 1014let isWebView = null; 1015 1016function checkWebView() { 1017 if (isWebView === null) { 1018 function _detectOS(ua) { 1019 if (/Android/.test(ua)) { 1020 return "Android"; 1021 } else if (/iPhone|iPad|iPod/.test(ua)) { 1022 return "iOS"; 1023 } else if (/Windows/.test(ua)) { 1024 return "Windows"; 1025 } else if (/Mac OS X/.test(ua)) { 1026 return "Mac"; 1027 } else if (/CrOS/.test(ua)) { 1028 return "Chrome OS"; 1029 } else if (/Firefox/.test(ua)) { 1030 return "Firefox OS"; 1031 } 1032 return ""; 1033 } 1034 1035 function _detectBrowser(ua) { 1036 let android = /Android/.test(ua); 1037 1038 if (/Opera Mini/.test(ua) || / OPR/.test(ua) || / OPT/.test(ua)) { 1039 return "Opera"; 1040 } else if (/CriOS/.test(ua)) { 1041 return "Chrome for iOS"; 1042 } else if (/Edge/.test(ua)) { 1043 return "Edge"; 1044 } else if (android && /Silk\//.test(ua)) { 1045 return "Silk"; 1046 } else if (/Chrome/.test(ua)) { 1047 return "Chrome"; 1048 } else if (/Firefox/.test(ua)) { 1049 return "Firefox"; 1050 } else if (android) { 1051 return "AOSP"; 1052 } else if (/MSIE|Trident/.test(ua)) { 1053 return "IE"; 1054 } else if (/Safari\//.test(ua)) { 1055 return "Safari"; 1056 }
1056 else if (/AppleWebKit/.test(ua)) { 1057 return "WebKit"; 1058 } 1059 return ""; 1060 } 1061 1062 function _detectBrowserVersion(ua, browser) { 1063 if (browser === "Opera") { 1064 return /Opera Mini/.test(ua) ? _getVersion(ua, "Opera Mini/") : 1065 / OPR/.test(ua) ? _getVersion(ua, " OPR/") : 1066 _getVersion(ua, " OPT/"); 1067 } else if (browser === "Chrome for iOS") { 1068 return _getVersion(ua, "CriOS/"); 1069 } else if (browser === "Edge") { 1070 return _getVersion(ua, "Edge/"); 1071 } else if (browser === "Chrome") { 1072 return _getVersion(ua, "Chrome/"); 1073 } else if (browser === "Firefox") { 1074 return _getVersion(ua, "Firefox/"); 1075 } else if (browser === "Silk") { 1076 return _getVersion(ua, "Silk/"); 1077 } else if (browser === "AOSP") { 1078 return _getVersion(ua, "Version/"); 1079 } else if (browser === "IE") { 1080 return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") : 1081 /MSIE/.test(ua) ? _getVersion(ua, "MSIE ") 1082 : 1083 _getVersion(ua, "rv:"); 1084 } else if (browser === "Safari") { 1085 return _getVersion(ua, "Version/"); 1086 } else if (browser === "WebKit") { 1087 return _getVersion(ua, "WebKit/"); 1088 } 1089 return "0.0.0"; 1090 } 1091 1092 function _getVersion(ua, token) { 1093 try { 1094 return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]); 1095 } catch (o_O) { 1096 } 1097 return "0.0.0"; 1098 } 1099 1100 function _normalizeSemverString(version) { 1101 const ary = version.split(/[\._]/); 1102 return (parseInt(ary[0], 10) || 0) + "." + 1103 (parseInt(ary[1], 10) || 0) + "." + 1104 (parseInt(ary[2], 10) || 0); 1105 } 1106 1107 function _isWebView(ua, os, browser, version, options) { 1108 switch (os + browser) { 1109 case "iOSSafari": 1110 return false; 1111 case "iOSWebKit": 1112 return _isWebView_iOS(options); 1113 case "AndroidAOSP": 1114 return false; 1115 case "AndroidChrome": 1116 return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options); 1117 } 1118 return false; 1119 } 1120 1121 function _isWebView_iOS(options) { 1122 const document = (window["document"] || {}); 1123 1124 if ("WEB_VIEW" in options) { 1125 return options["WEB_VIEW"]; 1126 } 1127 return !("fullscreenEnabled" in document || "webkitFullscreenEnabled" in document || false); 1128 } 1129 1130 function _isWebView_Android(options) { 1131 if ("WEB_VIEW" in options) { 1132 return options["WEB_VIEW"]; 1133 } 1134 return !("requestFileSystem" in window || "webkitRequestFileSystem" in window || false); 1135 } 1136 1137 const options = {}, 1138 nav = window.navigator || {}, 1139 ua = nav.userAgent || "", 1140 os = _detectOS(ua), 1141 browser = _detectBrowser(ua), 1142 browserVersion = _detectBrowserVersion(ua, browser); 1143 1144 isWebView = _isWebView(ua, os, browser, browserVersion, options); 1145 } 1146 1147 return isWebView; 1148} 1149 1150function isAllowedWebViewForUserAgent(provider) { 1151 const facebookAllowedWebViews = [ 1152 'Instagram', 1153 'FBAV', 1154 'FBAN' 1155 ]; 1156 let whitelist = []; 1157 1158 if (provider && provider === 'facebook') { 1159 whitelist = facebookAllowedWebViews; 1160 } 1161 1162 const nav = window.navigator || {}, 1163 ua = nav.userAgent || ""; 1164 1165 if (whitelist.length && ua.match(new RegExp(whitelist.join('|')))) { 1166 return true; 1167 } 1168 1169 return false; 1170} 1171 1172function disableButtonInWebView(providerButtonElement) { 1173 if (providerButtonElement) { 1174 providerButtonElement.classList.add('nsl-disabled-provider'); 1175 providerButtonElement.setAttribute('href', '#'); 1176 1177 providerButtonElement.addEventListener('pointerdown', (e) => { 1178 const closeNotice = function () { 1179 if (window._nslWebViewNoticeElement) { 1180 window._nslWebViewNoticeElement.remove(); 1181 window._nslWebViewNoticeElement = null; 1182 } 1183 }; 1184 1185 closeNotice(); 1186 1187 window._nslWebViewNoticeElement = document.createElement('div'); 1188 window._nslWebViewNoticeElement.id = "nsl-notices-fallback"; 1189 window._nslWebViewNoticeElement.role = 'alert'; 1190 window._nslWebViewNoticeElement.ariaLive = 'assertive'; 1191 window._nslWebViewNoticeElement.ariaAtomic = 'true'; 1192 1193 window._nslWebViewNoticeElement.addEventListener('pointerdown', closeNotice); 1194 1195 window._nslWebViewNoticeElement.addEventListener('keydown', function (e) { 1196 if (e.key === 'Enter') { 1197 e.preventDefault(); 1198 closeNotice(); 1199 } 1200 }); 1201 const webviewNoticeHTML = '<div class="error"><p>' + scriptOptions._localizedStrings.webview_notification_text + '</p></div>'; 1202 1203 window._nslWebViewNoticeElement.insertAdjacentHTML("afterbegin", webviewNoticeHTML); 1204 document.body.appendChild(window._nslWebViewNoticeElement); 1205 }); 1206 } 1207 1208} 1209 1210window._nslDOMReady(function () { 1211 1212 window.nslRedirect = function (url) { 1213 if (scriptOptions._redirectOverlay) {
1214 const overlay = document.createElement('div'); 1215 overlay.id = "nsl-redirect-overlay"; 1216 let overlayHTML = ''; 1217 const overlayContainer = "<div id='nsl-redirect-overlay-container'>", 1218 overlayContainerClose = "</div>", 1219 overlaySpinner = "<div id='nsl-redirect-overlay-spinner'></div>", 1220 overlayTitle = "<p id='nsl-redirect-overlay-title'>" + scriptOptions._localizedStrings.redirect_overlay_title + "</p>", 1221 overlayText = "<p id='nsl-redirect-overlay-text'>" + scriptOptions._localizedStrings.redirect_overlay_text + "</p>"; 1222 1223 switch (scriptOptions._redirectOverlay) { 1224 case "overlay-only": 1225 break; 1226 case "overlay-with-spinner": 1227 overlayHTML = overlayContainer + overlaySpinner + overlayContainerClose; 1228 break; 1229 default: 1230 overlayHTML = overlayContainer + overlaySpinner + overlayTitle + overlayText + overlayContainerClose; 1231 break; 1232 } 1233 1234 overlay.insertAdjacentHTML("afterbegin", overlayHTML); 1235 document.body.appendChild(overlay); 1236 } 1237 1238 window.location = url; 1239 }; 1240 1241 let targetWindow = scriptOptions._targetWindow || 'prefer-popup', 1242 lastPopup = false; 1243 1244 1245 document.addEventListener('click', function (e) { 1246 if (e.target) { 1247 const buttonLinkElement = e.target.closest('a[data-plugin="nsl"][data-action="connect"]') || e.target.closest('a[data-plugin="nsl"][data-action="link"]'); 1248 if (buttonLinkElement) { 1249 if (lastPopup && !lastPopup.closed) { 1250 e.preventDefault(); 1251 lastPopup.focus(); 1252 } else { 1253 1254 let href = buttonLinkElement.href, 1255 success = false; 1256 if (href.indexOf('?') !== -1) { 1257 href += '&'; 1258 } else { 1259 href += '?'; 1260 } 1261 1262 const redirectTo = buttonLinkElement.dataset.redirect; 1263 if (redirectTo === 'current') { 1264 href += 'redirect=' + encodeURIComponent(window.location.href) + '&'; 1265 } else if (redirectTo && redirectTo !== '') { 1266 href += 'redirect=' + encodeURIComponent(redirectTo) + '&'; 1267 } 1268 1269 if (targetWindow !== 'prefer-same-window' && checkWebView()) { 1270 targetWindow = 'prefer-same-window'; 1271 } 1272 1273 if (targetWindow === 'prefer-popup') { 1274 lastPopup = NSLPopup(href + 'display=popup', 'nsl-social-connect', buttonLinkElement.dataset.popupwidth, buttonLinkElement.dataset.popupheight); 1275 if (lastPopup) { 1276 success = true; 1277 e.preventDefault(); 1278 } 1279 } else if (targetWindow === 'prefer-new-tab') { 1280 const newTab = window.open(href + 'display=popup', '_blank'); 1281 if (newTab) { 1282 if (window.focus) { 1283 newTab.focus(); 1284 } 1285 success = true; 1286 window._nslHasOpenedPopup = true; 1287 e.preventDefault(); 1288 } 1289 } 1290 1291 if (!success) { 1292 window.location = href; 1293 e.preventDefault(); 1294 } 1295 } 1296 } 1297 } 1298 }); 1299 1300 let buttonCountChanged = false; 1301 1302 const googleLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="google"]'); 1303 if (googleLoginButtons.length && checkWebView()) { 1304 googleLoginButtons.forEach(function (googleLoginButton) { 1305 if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') { 1306 disableButtonInWebView(googleLoginButton); 1307 } else { 1308 googleLoginButton.remove(); 1309 buttonCountChanged = true; 1310 } 1311 }); 1312 } 1313 1314 const facebookLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="facebook"]'); 1315 if (facebookLoginButtons.length && checkWebView() && /Android/.test(window.navigator.userAgent) && !isAllowedWebViewForUserAgent('facebook')) { 1316 facebookLoginButtons.forEach(function (facebookLoginButton) { 1317 if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') { 1318 disableButtonInWebView(facebookLoginButton); 1319 } else { 1320 facebookLoginButton.remove(); 1321 buttonCountChanged = true; 1322 } 1323 }); 1324 } 1325 1326 const separators = document.querySelectorAll('div.nsl-separator'); 1327 if (buttonCountChanged && separators.length) {
1328 separators.forEach(function (separator) { 1329 const separatorParentNode = separator.parentNode; 1330 if (separatorParentNode) { 1331 const separatorButtonContainer = separatorParentNode.querySelector('div.nsl-container-buttons'); 1332 if (separatorButtonContainer && !separatorButtonContainer.hasChildNodes()) { 1333 separator.remove(); 1334 } 1335 } 1336 }) 1337 } 1338});})();</script>
1338<div id="sevenesl-search-modal" class="sevenesl-search-modal" hidden aria-hidden="true"><div class="sevenesl-search-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="sevenesl-search-modal-title"> <button class="sevenesl-search-modal__close" data-sevenesl-search-close aria-label="Close search popup"> <span aria-hidden="true">Ã</span> </button><div class="sevenesl-search-modal__header"><div class="sevenesl-search-modal__heading"><p class="sevenesl-search-modal__label">Search 7ESL</p><p id="sevenesl-search-modal-title" class="sevenesl-search-modal__title">Find the right article faster</p></div><form class="sevenesl-search-modal__form" role="search" method="get" action="https://7esl.com/"> <span class="sevenesl-search-modal__search-icon" aria-hidden="true"> <svg viewBox="0 0 24 24" focusable="false" aria-hidden="true"><path d="M10.5 4.75a5.75 5.75 0 1 0 0 11.5a5.75 5.75 0 0 0 0-11.5Zm0-1.5a7.25 7.25 0 1 1 0 14.5a7.25 7.25 0 0 1 0-14.5Zm6.23 12.42l3.52 3.52a.75.75 0 1 1-1.06 1.06l-3.52-3.52a.75.75 0 1 1 1.06-1.06Z" fill="currentColor"></path></svg> </span> <input type="search" class="sevenesl-search-modal__input" name="s" placeholder="Search articles, grammar, vocabulary..." autocomplete="off" /> <button type="submit" class="sevenesl-search-modal__submit">Search</button></form></div><div class="sevenesl-search-modal__summary"></div><div class="sevenesl-search-modal__status"></div><div class="sevenesl-search-modal__results"></div></div></div>
1338<script type="text/javascript">window.addEventListener("DOMContentLoaded",(e=>{document.querySelectorAll('img[loading="lazy"]').forEach((e=>{e.getBoundingClientRect().top<=window.innerHeight&&(e.loading="eager")}))}));</script>
1338
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-functions-js-sticky.min-243a12dcd23b.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-thinklab-e5eeb69600bc.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-menu.min-826f0eef6b5f.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-back-to-top.min-888dfb066496.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-js-js-front-end-breeze-lazy-load.min-396a30523880.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-tests-assets-tests-2bfa4ec760bc.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-toc-c4a67bd4f5d3.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-tests-assets-esl-sounds-342f7b24e8d5.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-tests-assets-article-tabs-0745ff6fdaba.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-site-chrome-7fff92bb9ee3.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-sidebar-search-1483100a9f2b.js?ver=1790912477"></script>
1338<script type="text/javascript" src="https://7esl.com/wp-content/cache/breeze-minification/js/breeze_category-grammar-articles-1-112735-assets-js-helpful-vote-3b9a9ab89cab.js?ver=1790912477"></script>
1338</body></html> 1339<!-- Cache served by breeze CACHE - Last modified: Fri, 02 Oct 2026 03:41:17 GMT -->
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.