اگر هنگام بررسی یک قالب یا کد HTML قدیمی با bgsound روبهرو شدهاید، احتمالاً اولین سؤال این است که این تگ چه کاری انجام میدهد و آیا هنوز میتوان از آن استفاده کرد. bgsound برای پخش صدای پسزمینه در صفحات وب قدیمی به کار میرفت، اما امروز یک عنصر منسوخ HTML است و برای پروژههای جدید انتخاب مناسبی محسوب نمیشود.
در این مقاله ابتدا میبینیم تگ bgsound چگونه کار میکرد و چه اتریبیوتهایی داشت؛ سپس وضعیت آن در HTML امروزی را بررسی میکنیم و در نهایت یاد میگیریم هنگام برخورد با چنین کدی، چگونه رفتار موردنیاز را با تگ استاندارد audio جایگزین کنیم.
تگ bgsound در HTML چیست؟
تگ bgsound در HTML یک عنصر قدیمی برای پخش صدای پسزمینه در صفحه وب بود. با قرار دادن این تگ در کد صفحه و مشخصکردن فایل صوتی، مرورگر میتوانست هنگام نمایش صفحه صدا را پخش کند؛ بدون اینکه یک پخشکننده صوتی معمولی در محتوای صفحه دیده شود.
این عنصر بیشتر در صفحات و پیادهسازیهای قدیمی وب دیده میشود و در مستندات قدیمی Internet Explorer مایکروسافت نیز برای ایجاد Background Sound یا Soundtrack تعریف شده بود.
ممکن است هنگام بررسی قالبها، پروژههای Legacy یا نمونهکدهای بسیار قدیمی با چنین ساختاری روبهرو شوید:
در این مثال، فایل music.mid بهعنوان صدای پسزمینه صفحه در نظر گرفته شده است.
نکته مهم این است که دیدن bgsound در یک کد قدیمی به این معنی نیست که هنوز باید از آن استفاده کنید. در استاندارد فعلی HTML، این عنصر کاملاً منسوخ است و راهکار استاندارد برای قرار دادن محتوای صوتی در صفحه، عنصر audio است.
بنابراین اگر در حال یادگیری مبانی HTML یا توسعه یک سایت جدید هستید، bgsound تگی نیست که لازم باشد برای استفاده عملی یاد بگیرید. شناخت آن بیشتر زمانی اهمیت دارد که با کدهای قدیمی HTML سروکار دارید و میخواهید بدانید این کد چه کاری انجام میداده و چگونه باید آن را با راهکار امروزی جایگزین کنید. برای مرور ساختاری سایر عناصر نیز میتوانید فهرست تگهای HTML را ببینید.
سینتکس و اتریبیوتهای تگ bgsound
در کدهای قدیمی HTML، تگ bgsound معمولاً با مشخصکردن آدرس فایل صوتی در اتریبیوت src استفاده میشد: اگر با نقش این ویژگیها آشنا نیستید، راهنمای اتریبیوت در HTML مبنای لازم را توضیح میدهد.
امکان کنترل بعضی ویژگیهای پخش نیز با اتریبیوتهای اختصاصی این عنصر وجود داشت. برای مثال:
این نمونه را باید بهعنوان کد Legacy بشناسید، نه الگویی برای استفاده در یک پروژه جدید.
| تریبیوت | اربرد تاریخی |
|---|---|
| src | آدرس فایل صوتی موردنظر برای پخش را مشخص میکرد. |
| loop | تعداد دفعات تکرار صدا را تعیین میکرد و در نمونههای قدیمی مقدار infinite نیز برای تکرار مداوم دیده میشود. |
| volume | برای کنترل شدت صدای پسزمینه در پیادهسازی قدیمی استفاده میشد. |
| balance | مشخص میکرد صدا چگونه میان کانالهای چپ و راست تقسیم شود. |
در مستندات تاریخی این عنصر، مقدار balance در محدوده -10000 تا +10000 تعریف شده بود؛ 0 حالت متعادل را نشان میداد و دو انتهای محدوده صدا را به کانال چپ یا راست هدایت میکردند.
این اتریبیوتها بخشی از رفتار قدیمی bgsound هستند و نباید آنها را قابلیتهای استاندارد HTML امروزی در نظر گرفت. اگر چنین کدی را در یک سایت قدیمی پیدا کردید، ابتدا باید نقش هر اتریبیوت را تشخیص دهید و سپس برای رفتارهایی که هنوز لازم هستند، راهکار استاندارد امروزی را انتخاب کنید.
چرا نباید از bgsound در HTML امروزی استفاده کنیم؟
تگ bgsound فقط قابلیتی قدیمی نیست که استفاده از آن کمتر شده باشد؛ در HTML Standard فعلی این عنصر در دسته کاملاً منسوخ (entirely obsolete) و non-conforming قرار دارد. به بیان ساده، نویسندگان صفحات وب نباید از آن در HTML جدید استفاده کنند. برای آشنایی با عناصر مشابه و جایگزینهای آنها، مقاله تگهای منسوخشده HTML مرجع مرتبط این موضوع است.
ممکن است مرورگرها برای سازگاری با برخی صفحات قدیمی هنوز کدهای Legacy را به شکلی پردازش کنند، اما چنین رفتاری نباید مبنای توسعه یک سایت جدید باشد. پردازششدن یک کد قدیمی با استاندارد و قابلاتکا بودن آن یکسان نیست.
HTML Standard برای bgsound مستقیماً استفاده از audio را پیشنهاد میکند. بنابراین اگر در یک پروژه قدیمی با این عنصر روبهرو شدید، راه درست حفظ یا تکرار همان کد نیست؛ ابتدا باید مشخص کنید صدای موردنظر چه نقشی داشته و سپس همان نیاز را با امکانات استاندارد صوتی وب پیادهسازی کنید.
در نتیجه، شناخت تگ bgsound امروز بیشتر برای خواندن، نگهداری و مهاجرت کدهای قدیمی کاربرد دارد، نه برای نوشتن HTML جدید.
جایگزین bgsound چیست و چگونه کد قدیمی را تبدیل کنیم؟
جایگزین استاندارد تگ bgsound در HTML امروزی، تگ audio است. این عنصر برای قرار دادن محتوای صوتی در صفحه طراحی شده و برخلاف bgsound، بخشی از HTML استاندارد است.
فرض کنید در یک پروژه قدیمی چنین کدی وجود دارد:
اگر هدف پخش همان فایل صوتی همراه با تکرار آن باشد، یک پیادهسازی ساده و استاندارد میتواند چنین باشد:
در این نسخه، src آدرس فایل صوتی را مشخص میکند و loop باعث میشود پس از رسیدن صدا به انتها، پخش دوباره از ابتدا شروع شود. وجود controls نیز کنترلهایی مانند پخش، مکث و تنظیم صدا را در اختیار کاربر قرار میدهد.
برای بررسی کامل ساختار و امکانات این عنصر میتوانید آموزش تگ audio در HTML را مطالعه کنید.
آیا میتوان صدای جایگزین را خودکار پخش کرد؟
تگ audio اتریبیوت autoplay نیز دارد:
اما وجود autoplay به این معنی نیست که صدای قابلشنیدن حتماً پس از بازشدن صفحه پخش خواهد شد. مرورگرهای امروزی برای جلوگیری از پخش ناخواسته صدا، سیاستهای Autoplay دارند و ممکن است پخش خودکار را تا زمان تعامل کاربر مسدود کنند.
به همین دلیل، عملکرد اصلی صفحه را نباید به موفقیت قطعی Autoplay وابسته کرد. در حالت معمول نیز بهتر است شروع و توقف پخش صدا در اختیار کاربر باشد.
همچنین همه قابلیتهای bgsound معادل یکبهیک در audio ندارند. برای مثال، volume و balance به همان شکلِ اتریبیوتهای قدیمی bgsound روی عنصر audio تعریف نشدهاند. اگر پروژه به کنترل برنامهنویسیشده صدا نیاز داشته باشد، میتوان متناسب با نیاز از JavaScript و در سناریوهای پیشرفتهتر از Web Audio API استفاده کرد.
بنابراین هنگام اصلاح یک پروژه Legacy، هدف نباید فقط تعویض:
<bgsound ...>
با:
<audio ...></audio>
باشد. ابتدا مشخص کنید صدای قدیمی چه نقشی در صفحه داشته است و سپس فقط رفتارهایی را که هنوز برای کاربر لازم هستند با امکانات استاندارد وب بازسازی کنید. در بسیاری از صفحات، دادن کنترل پخش به کاربر انتخاب مناسبتری از تلاش برای بازسازی صدای پسزمینه خودکار است.
جمعبندی
تگ bgsound بخشی از نسل قدیمی صفحات وب بود و برای پخش صدای پسزمینه استفاده میشد، اما امروز نباید آن را راهکاری برای HTML جدید در نظر گرفت. ارزش شناخت این تگ بیشتر زمانی مشخص میشود که یک پروژه Legacy را بررسی میکنید و باید بفهمید کد قدیمی چه رفتاری داشته است.
در چنین شرایطی، بهجای حفظ bgsound باید نیاز واقعی صفحه—مانند پخش فایل صوتی، تکرار آن یا کنترل پخش—را مشخص کنید و همان رفتار را با audio و امکانات استاندارد وب بازسازی کنید. همچنین بهتر است پخش خودکار صدا را رفتاری تضمینشده فرض نکنید و تا جای ممکن کنترل پخش را در اختیار کاربر قرار دهید.
اگر میخواهید HTML را بهصورت ساختارمند و بر اساس روشهای امروزی یاد بگیرید، میتوانید مسیر یادگیری را با دوره تخصصی HTML ادامه دهید.
سوالات متداول
خیر. تگ bgsound یک عنصر منسوخ HTML است و برای توسعه صفحات وب جدید نباید از آن استفاده شود. این تگ بیشتر زمانی اهمیت دارد که با کدهای قدیمی یا پروژههای Legacy سروکار داشته باشید.
جایگزین استاندارد bgsound، تگ audio است. با استفاده از audio میتوان فایل صوتی را به صفحه اضافه کرد و قابلیتهایی مانند کنترل پخش و تکرار صدا را در اختیار کاربر قرار داد.
تگ audio از اتریبیوت autoplay پشتیبانی میکند، اما مرورگرهای امروزی ممکن است پخش خودکار صدای قابلشنیدن را تا زمان تعامل کاربر مسدود کنند. بنابراین نباید روی Autoplay بهعنوان رفتاری تضمینشده حساب کرد.
در کدهای قدیمی، اتریبیوتهایی مانند src برای تعیین فایل صوتی، loop برای تکرار صدا، volume برای کنترل شدت صدا و balance برای تنظیم جهت صدا میان کانالهای چپ و راست استفاده میشدند.
ابتدا باید مشخص کنید bgsound چه نقشی در صفحه داشته است؛ سپس فقط رفتارهای موردنیاز را با امکانات استاندارد وب، معمولاً با تگ audio و در صورت نیاز JavaScript، بازسازی کنید. صرفاً تعویض نام تگ همیشه معادل رفتار قبلی نیست.