امتحان HTML 3: مفاهيم متقدمة وأفضل الممارسات (20 تمرين)
امتحان HTML 3: المستوى المتقدم
يتكون هذا الامتحان من 20 تمرين شامل يركز على المفاهيم المتقدمة وأفضل الممارسات.
التمارين 1-10: المستوى الأساسي |
التمارين 11-15: المستوى المتوسط |
التمارين 16-20: المستوى المتقدم
أضف سمات ARIA المناسبة:
- لديك div مصمم كزر إغلاق "X".
- أضف role="button" و aria-label="إغلاق".
- اجعله قابلاً للتركيز (tabindex="0").
<div role="button" aria-label="إغلاق" tabindex="0">X</div>
استخدم data attributes:
- أنشئ li لمنتج مع data-id="12345".
- أضف data-price="99.99".
- أضف data-category="electronics".
<li data-id="12345" data-price="99.99" data-category="electronics">
هاتف ذكي
</li>
اكتب المسارات الصحيحة:
- أنت في مجلد pages، اعرض صورة logo.png من نفس المجلد.
- اعرض bg.jpg من مجلد images في المستوى الأعلى.
<img src="logo.png" alt="شعار">
<img src="../images/bg.jpg" alt="خلفية">
أضف favicon للموقع:
- اكتب الكود في head لإضافة favicon.ico.
- استخدم rel="icon" و type="image/x-icon".
<link rel="icon" type="image/x-icon" href="/favicon.ico">
اربط الملفات الخارجية:
- اربط style.css من مجلد css.
- اربط script.js من مجلد js مع defer.
<link rel="stylesheet" href="css/style.css">
<script src="js/script.js" defer></script>
استخدم السمات العامة:
- اجعل فقرة قابلة للتعديل (contenteditable).
- أضف tooltip لزر باستخدام title.
<p contenteditable="true">يمكنك تعديل هذا النص!</p>
<button title="اضغط هنا للمزيد">معلومات</button>
أضف وسوم Open Graph:
- og:title للعنوان.
- og:image لصورة المعاينة.
- og:description للوصف.
<meta property="og:title" content="عنوان صفحتي">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="وصف الصفحة">
اعرض الرموز التعبيرية:
- تأكد من استخدام UTF-8 في head.
- اعرض وجه مبتسم باستخدام كود HTML.
<meta charset="UTF-8">
<p>مرحباً 😀</p>
نظم القائمة المنسدلة:
- أنشئ select للسيارات.
- جمّع تحت "سيارات ألمانية" و "سيارات يابانية".
<select name="cars">
<optgroup label="سيارات ألمانية">
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</optgroup>
<optgroup label="سيارات يابانية">
<option value="toyota">Toyota</option>
</optgroup>
</select>
استخدم base tag:
- اجعل جميع الروابط تفتح في نافذة جديدة افتراضياً.
<head>
<base target="_blank">
</head>
أنشئ منطقة تحديثات مباشرة:
- استخدم aria-live="polite" لإشعارات غير عاجلة.
- أضف role="status" للمنطقة.
<div role="status" aria-live="polite" aria-atomic="true">
تم حفظ التغييرات بنجاح
</div>
أضف microdata لشخص:
- استخدم itemscope و itemtype="http://schema.org/Person".
- أضف itemprop للاسم والوظيفة.
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">أحمد محمد</span>
<span itemprop="jobTitle">مطور ويب</span>
</div>
حسّن أداء التحميل:
- استخدم preload لخط مهم.
- استخدم prefetch لصفحة قد يزورها المستخدم.
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>
<link rel="prefetch" href="/next-page.html">
حسّن سرعة الاتصال بالنطاقات الخارجية:
- استخدم dns-prefetch لـ Google Fonts.
- أضف preconnect لـ CDN.
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="preconnect" href="https://cdn.example.com" crossorigin>
اربط ملف manifest:
- أضف link لملف manifest.json.
- أضف theme-color للمتصفح.
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#4285f4">
أضف بيانات منظمة لمقال:
- استخدم JSON-LD في script type="application/ld+json".
- حدد @type كـ Article.
- أضف headline, author, datePublished.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "تعلم HTML",
"author": {
"@type": "Person",
"name": "أحمد محمد"
},
"datePublished": "2024-01-01"
}
</script>
أنشئ قائمة تنقل يمكن الوصول إليها بالكامل:
- استخدم nav مع aria-label.
- أضف role="menubar" للقائمة.
- استخدم aria-current="page" للصفحة الحالية.
<nav aria-label="التنقل الرئيسي">
<ul role="menubar">
<li role="none">
<a href="/" role="menuitem" aria-current="page">الرئيسية</a>
</li>
<li role="none">
<a href="/about" role="menuitem">من نحن</a>
</li>
</ul>
</nav>
استخدم جميع أنواع resource hints:
- dns-prefetch لنطاق خارجي.
- preconnect لـ API.
- prefetch لصفحة تالية.
- preload لملف CSS حرج.
<link rel="dns-prefetch" href="//cdn.example.com">
<link rel="preconnect" href="https://api.example.com">
<link rel="prefetch" href="/next-page.html">
<link rel="preload" href="critical.css" as="style">
أضف meta tags للأمان:
- Content Security Policy.
- X-Content-Type-Options.
- Referrer Policy.
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta name="referrer" content="no-referrer-when-downgrade">
أنشئ head كامل لصفحة محسّنة للSEO:
- جميع meta tags الأساسية.
- Open Graph و Twitter Cards.
- JSON-LD structured data.
- Resource hints.
- Security headers.
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>عنوان الصفحة - الموقع</title>
<meta name="description" content="وصف شامل للصفحة">
<link rel="canonical" href="https://example.com/page">
<!-- Open Graph -->
<meta property="og:title" content="عنوان الصفحة">
<meta property="og:description" content="وصف الصفحة">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:url" content="https://example.com/page">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<!-- Resource Hints -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="//cdn.example.com">
<!-- Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "عنوان الصفحة"
}
</script>
</head>