ทำไมแท็ก <b> และ <i> เลิกใช้แล้ว


98

คำถามนี้เกิดขึ้นในหนึ่งในชั้นเรียนวิทยาลัยของฉัน อาจารย์เพียง แต่ให้คำตอบว่ามันเป็นอธิบายเพิ่มเติม แต่มันดูเหมือนกับว่า<b>และ<i>ค่อนข้างชัดเจนในความหมายของพวกเขาและง่ายต่อการพิมพ์กว่าและ<strong><em>

อะไรคือข้อโต้แย้งอย่างเป็นทางการสำหรับการคัดค้านแท็กเหล่านี้


38
ฉันค่อนข้างแน่ใจ<b>และ<i>ไม่คัดค้าน
Doval

12
การอ่านที่เกี่ยวข้อง: <b> และ <strong>, <i> และ <em> ต่างกันอย่างไร พร้อมด้วย<strong> vs <em>

4
ฉันมักจะมีเหตุผลเกี่ยวกับเรื่องนี้: ฉันต้องการให้โปรแกรมอ่านหน้าจออ่านสิ่งนี้แตกต่างกันหรือไม่? หากฉันแค่ต้องการเลือกคำที่จะหาได้ง่ายโดยผู้อ่าน (ไม่ใช่คนตาบอด) ฉันอาจใช้b- หมายความว่า "นี่คือตัวหนา" จริงๆไม่ใช่ "นี่คือการเน้น" แต่จุดสำคัญคือพวกเขากำลังที่แตกต่างกันในความหมาย - ไม่เลิกเพียงไม่ได้ว่าเมื่อคุณใช้ในการทำbหรือiคุณจะมีความหมายหรือstrong em
Luaan

1
@MichaelT ฉันจำได้ว่าเมื่อฉันเริ่มใช้ LaTeX เป็นครั้งแรกฉันสับสนเกี่ยวกับวิธีการที่แตกต่างกันทั้งหมดของข้อความที่สามารถทำให้เป็นตัวเอียงและเป็นตัวหนาเมื่อเริ่มต้นในเอกสารเปล่า
โคลจอห์นสัน

@ Luaan: แม้ว่า<i>และ<b>จะไม่ถูกปฏิเสธจริง<tt>และ<u>เป็นและคำถามนั้นจะสามารถใช้ได้กับคำถามเหล่านั้น
supercat

คำตอบ:


135

ฤดูร้อนปีที่แล้วฉันอ่านข้อกำหนด HTML5 ที่สมบูรณ์และข้อกำหนด HTML ก่อนหน้านี้ทุกตัว (แม้แต่รายการที่ถูกละทิ้ง) และรายละเอียด CSS ทั้งหมดที่ฉันสามารถหาได้และข้อกำหนด XML จำนวนมาก เนื่องจากฉันชอบเอกสารไฮเปอร์เท็กซ์ที่อุดมไปด้วยความหมายฉันขอเสนอแนวคิดเบื้องหลังความหมาย HTML ที่เกี่ยวข้องใน HTML5

ก่อน HTML5

ก่อนที่จะ HTML5 iและbเป็นจริงจากแฟชั่น เหตุผลก็คือพวกเขาทำงานเหมือนemและstrongตามลำดับ แต่ให้ความสำคัญกับการนำเสนอไม่ใช่ความหมาย (ซึ่งไม่ดี)

อันที่จริงiหมายความว่าข้อความควรเป็นตัวเอียง (มันพูดอะไรเกี่ยวกับวิธีการแสดงข้อความบนหน้าจอ) ในทางตรงกันข้ามemหมายความว่าข้อความจะต้องเน้น (มันพูดอะไรบางอย่างเกี่ยวกับความหมายของข้อความ)

มีความแตกต่างทางทฤษฎีที่สำคัญที่นี่ หากคุณใช้emเอเจนต์ผู้ใช้ (= เบราว์เซอร์) จะรู้ว่าควรเน้นข้อความดังนั้นจึงสามารถแสดงเป็นตัวเอียงหากเอกสารปรากฏบนหน้าจอ (หรือตัวพิมพ์ใหญ่ทั้งหมดหากไม่สามารถทำการจัดรูปแบบหรืออาจเป็นตัวหนา) ผู้ใช้ต้องการสิ่งนั้น) สามารถออกเสียงได้แตกต่างกันหากเอกสารถูกพูดกับผู้ใช้ ฯลฯ

ขอให้สังเกตว่าการเน้นถึงความหมายจริงๆ ตัวอย่างเช่นวลี

  • แมวเป็นของฉัน (= ไม่ใช่สุนัข!)
  • แมวเป็นเหมือง (= ไม่ใช่ของคุณ!)

ไม่มีความหมายเหมือนกัน

ความแตกต่างเดียวกันนี้ใช้กับb(แบบอักษรตัวหนา) และstrong(เน้นมาก)

หลักการทั่วไปของการเขียนดิจิทัลโดยทั่วไปและโดยเฉพาะอย่างยิ่งการเขียนไฮเปอร์เท็กซ์คือคุณควรแยกเนื้อหาและสไตล์ ในการเขียนไฮเปอร์เท็กซ์หมายความว่าเนื้อหาควรอยู่ในไฟล์ HTML และสไตล์ควรอยู่ในไฟล์ CSS (หรือไฟล์ CSS จำนวนหนึ่ง) หลักการที่แตกต่าง แต่มีความเกี่ยวข้องคือเอกสารควรอุดมไปด้วยความหมาย (เช่นการทำเครื่องหมายส่วนหัวท้ายกระดาษรายการเน้นที่อยู่พื้นที่นำทาง ฯลฯ ) สิ่งนี้มีข้อดีหลายประการ:

  • มันง่ายกว่าสำหรับโปรแกรมคอมพิวเตอร์ในการแปลเอกสาร โปรแกรมเหล่านี้รวมถึงเบราว์เซอร์แอปพลิเคชั่นแปลงข้อความเป็นคำพูดเครื่องมือค้นหาและผู้ช่วยดิจิทัล (ตัวอย่างเช่นเบราว์เซอร์สามารถให้คุณบันทึกที่อยู่ลงในสมุดที่อยู่ของคุณหากสามารถค้นหาและตีความได้เท่านั้นนอกจากนี้คุณอาจทราบว่า Microsoft Word สามารถสร้างและอัปเดต TOC ให้คุณโดยอัตโนมัติหากคุณทำเครื่องหมายส่วนหัวของคุณอย่างถูกต้อง .)
  • มันง่ายกว่าที่จะเปลี่ยนสไตล์ในภายหลัง (ถ้าคุณต้องการเปลี่ยนสีของส่วนหัวระดับที่สามทั้งหมดของคุณในเอกสาร 860 หน้าคุณสามารถเปลี่ยนบรรทัดเดียวในสไตล์ชีทได้หากคุณมีเนื้อหาและการนำเสนอที่หลากหลายคุณจะต้องผ่านเอกสารทั้งหมดด้วยตนเอง และคุณอาจพลาดหัวข้อหนึ่งหรือสองเรื่องทำให้เอกสารดูไม่เป็นมืออาชีพ)
  • คุณสามารถใช้สไตล์ชีตที่แตกต่างกันขึ้นอยู่กับสถานการณ์ (เอกสารแสดงบนหน้าจอหรือพิมพ์บนกระดาษหรือไม่) คุณสามารถปล่อยให้ผู้ใช้เลือกสไตล์ของตัวเองได้ (เว็บไซต์ของฉันมีสไตล์ชีทสำรองจำนวนมากใน IE และ FF คุณเปลี่ยนสิ่งเหล่านี้โดยใช้เมนูมุมมอง)

ดังนั้นในระยะสั้นiและbถูกคัดค้านเนื่องจากเป็นแท็ก HTML ที่เกี่ยวข้องกับการนำเสนอซึ่งผิดทั้งหมด

ใน HTML5

ใน HTML5 iและbไม่เลิกใช้แล้ว แต่พวกเขาจะให้ความหมาย sematic ดังนั้นตอนนี้พวกเขาเป็นจริงเกี่ยวกับความหมายและไม่เกี่ยวกับการนำเสนอ

ก่อนหน้านี้คุณใช้emเพื่อเน้นความสำคัญ: "แมวเป็นของฉัน" แต่คุณใช้iสำหรับกรณีอื่นเกือบทั้งหมดที่คุณจะใช้ตัวเอียงในงานพิมพ์ ตัวอย่างเช่น

  • คุณใช้iเพื่อทำเครื่องหมายอนุกรมวิธาน: "ฉันชอบR. norvegicus "
  • คุณใช้iเพื่อทำเครื่องหมายวลีในภาษาอื่นเมื่อเทียบกับข้อความโดยรอบ: À la carte
  • คุณใช้iเพื่อทำเครื่องหมายคำเมื่อคุณพูดถึงคำนั้น: " ดื่มเป็นคำนามและคำกริยา"

ขอแนะนำให้ใช้classแอตทริบิวต์เพื่อระบุการใช้งานที่แม่นยำ (เช่น Google "ไมโครฟอร์แมต" และ "microdata") และแน่นอนในกรณีที่สองคุณควรใช้langคุณลักษณะเพื่อระบุภาษาที่ถูกต้อง (มิฉะนั้นเช่นตัวแทนข้อความเป็นคำพูดที่อาจออกเสียงข้อความ.)

หนึ่งปีก่อนข้อกำหนด HTML5 ยังกล่าวอีกว่าciteควรใช้เพื่อทำเครื่องหมายชื่อหนังสือภาพยนตร์โอเปร่าภาพวาด ฯลฯ :

  • คุณคิดอย่างไรกับnymphomaniac ?

ในที่สุดเมื่อนานมาแล้วdfnถูกใช้เพื่อทำเครื่องหมายอินสแตนซ์ที่กำหนดของวลีในข้อความ (เช่นคำจำกัดความทางคณิตศาสตร์หรือคำนิยามของคำ):

  • กลุ่มเป็นชุด X พร้อมกับดำเนินการทวิภาคเดียว * ดังกล่าวว่า ...

ดังนั้นตัวเอียงในหนังสือที่พิมพ์ของคุณซึ่งอาจมีความหมายต่าง ๆ มากมายแสดงด้วยแท็ก HTML5 สี่แท็กซึ่งยอดเยี่ยมจริงๆเพราะซีแมนทิกส์นั้นดีเพราะฉันพยายามโน้มน้าวคุณก่อนหน้านี้ (ตัวอย่างเช่นคุณสามารถขอให้เบราว์เซอร์ของคุณสร้างรายการคำจำกัดความทั้งหมดในข้อความเพื่อให้แน่ใจว่าคุณรู้ทุกอย่างก่อนการสอบ)

เมื่อหันไปใช้strongและbข้อกำหนด HTML5 บอกว่าstrongควรจะใช้เพื่อทำเครื่องหมายส่วนที่สำคัญของข้อความเช่นคำเตือนหรือคำที่มีความสำคัญมากในประโยค ในทางกลับกันbควรใช้เพื่อทำเครื่องหมายสิ่งที่ต้องการค้นหาในข้อความเช่นคำหลัก ฉันยังใช้bเป็นส่วนหัวในรายการ (LIs)


1
การแก้ไข: แท็กความหมายคือไม่<dfn> <def>มิฉะนั้นสรุปที่ครอบคลุมที่ดีของปัญหาทั้งหมด ข้อเสนอแนะของคุณเพื่อใช้<b>เป็นส่วนหัวในรายการมีความน่าสนใจ วิธี semantic คือการใช้รายการคำนิยามแต่เนื่องจากไม่มีเบราว์เซอร์ที่รองรับอยู่ในปัจจุบันdisplay:run-inมาร์กอัปคำหลักแบบอินไลน์ด้วย<b>หรือ<span>เป็นวิธีที่ดีที่สุดที่คุณสามารถทำได้
AmeliaBR

@AmeliaBR ขอบคุณสำหรับการสังเกตการพิมพ์ผิด (def) เกี่ยวกับรายการคำนิยาม: รายการคำนิยามควรใช้สำหรับคู่ค่าชื่อและฉันมักจะใช้รายการเหล่านี้ (ดูที่สมุดเยี่ยมของฉันเป็นต้น) ฉันยังรักdisplay:run-inแต่เนื่องจากการสนับสนุนของมันจะลดลงคุณจะต้องใช้floatหรือcontent:เคล็ดลับดูrejbrand.se/rejbrand/news.asp?ItemIndex=169 เมื่อฉันพูดถึงการใช้bเพื่อทำเครื่องหมาย 'ส่วนหัว' ในรายการฉันไม่ได้หมายถึงคู่ชื่อ - ค่า แต่เป็นรายการง่ายๆที่ฉันต้องการใช้ 'ส่วนหัว' ในแต่ละรายการ
Andreas Rejbrand

1
@SarahofGaia มีอย่างน้อยสองข้อบกพร่องด้วยเหตุผลที่<b>รับประกันข้อความที่กล้าหาญ 1) โปรแกรมอ่านหน้าจอการแสดงอักษรเบรลล์และวิธีการอื่น ๆ ในการใช้ข้อความที่ร่ายมนตร์ที่หนาขึ้นเป็นแนวคิดที่ไร้ความหมาย 2) b { font-weight: normal }หมายถึงสไตล์การแสดงไม่ได้รับการแก้ไขสำหรับ<b>ทั้งสองอย่าง
8bittree

1
สุดท้ายคุณก็มักจะมีอิสระในการจัดหา CSS b, strong { font-weight:bold; }ของคุณเองหากคุณไม่ไว้ใจเบราว์เซอร์: ด้วยวิธีนี้คุณจะมั่นใจได้อย่างที่ควรจะเป็น CSS เป็นวิธีการระบุรูปแบบภาพ HTML เกี่ยวกับความหมาย (เนื้อหา), CSS เกี่ยวกับการนำเสนอแบบภาพของมัน
Andreas Rejbrand

1
คำตอบนี้ทำให้ฉันเข้าใจว่าทำไมฉันต้องเปลี่ยนแท็กแบบอักษรของฉันเป็น css ฉันชอบแท็กตัวอักษรที่เป็นตัวหนาเสมอและตอนนี้ฉันเข้าใจแล้วว่าทำไมไม่ควรใช้ ขอบคุณ
Andreas

58

ดังที่ Doval กล่าวว่าพวกเขาไม่คัดค้าน พวกเขายังคงมีอยู่แต่ควรจะใช้แตกต่างจากสิ่งที่หลายคนที่ใช้ในการก่อน HTML5

มันเกี่ยวกับ 'semantic' html ควรอธิบายว่ามันคืออะไรแทนที่จะมองว่ามันคืออะไร เบราว์เซอร์หรือสื่อการแสดงผลอื่น ๆ ในทางทฤษฎี (พูดแอปอ่านสำหรับคนตาบอด) ควรจะสามารถตัดสินใจได้ว่าควรตีความอย่างไร

นี่คล้ายกันว่าทำไมคุณไม่ควรใช้ชื่อคลาส CSS เช่น "red" และใช้คลาสที่มีความหมายมากขึ้นซึ่งอธิบายแนวคิดการทำงานที่อยู่เบื้องหลังโดยใช้สีที่แตกต่างกันที่นี่ คุณอาจตัดสินใจในภายหลังว่าสีเขียวดีกว่า (และอาจแสดง "strong" อะไรก็ได้โดยใช้สีแดงแทนที่จะเป็นตัวหนา) หรือผู้ใช้ตาบอดสีอาจมีการตั้งค่าเบราว์เซอร์พิเศษบางอย่างซึ่งสีจะถูกแทนที่ด้วยวิธีการอื่น


1
มีสถานการณ์ใดบ้างไหมที่จะใช้ <b> ซึ่งตรงข้ามกับ <strong>? หรือ <strong> แท็ก "มีความหมายมากขึ้น" เสมอหรือไม่
LanceLafontaine

4
ประมาณคุณสามารถใช้ <b> สำหรับสิ่งที่ควร "เน้น" แต่ไม่ "เน้น" เช่นคำหลักในข้อความ ในเอกสารทางเทคนิคคุณมักจะพบรูปแบบข้อความต่าง ๆ ที่ใช้ในการแสดงคุณลักษณะบางอย่างเช่นในการเขียนโปรแกรมตัวอย่างโค้ดหนังสือหรือคำศัพท์ทางเทคนิค สำหรับกรณีการใช้งานเช่นคำศัพท์ทางเทคนิคสามารถใช้ <b> หรือ <i> ได้
thorsten müller

3
@LanceLafontaine ลองดูที่ได้มาตรฐานอย่างเป็นทางการ
Rufflewind

4
@ thorstenmüllerผมคิดว่าเป็นตัวอย่างที่ไม่ดีเกินไป ... มันเป็นกรณีตำราเรียนที่จัดการตัดสินใจในภายหลังว่าแทนที่จะเป็นตัวหนาที่พวกเขาต้องการคุณลักษณะของพวกเขาอยู่ในตัวอักษรประเภทนักเขียนและไม่หนา แต่ขีดเส้นใต้ในกรณีที่ใช้<span class="keyword">...</span>ในครั้งแรกที่ช่วยให้คุณประหยัด ปัญหามากมาย
CompuChip

2
@ LanceLafontaine <b>เป็นตัวพิมพ์เล็ก แต่มีตัวอย่างที่ชัดเจนสำหรับใช้<i>ในกรณีที่<em>ไม่เหมาะสม: ชื่อทางวิทยาศาสตร์ของชนิดหรือคำละตินที่นำมาใช้เป็นภาษาอังกฤษ (คุณสามารถใช้ช่วงที่มีคุณลักษณะภาษา แต่มีความหมายอื่น ๆ ทุกประเภท - - โปรแกรมอ่านหน้าจออาจสลับเสียงสำหรับภาษาอื่น) นอกจากนี้ยังสามารถนำมาใช้สำหรับ italicizing ชื่อของผลงานอื่น ๆ <cite>แม้ว่าแนวทางที่ถูกต้องความหมายคือการใช้
AmeliaBR

41

เรื่องจริงคือเรื่องนั้นbและiถูกล้าสมัยเลิกคัดค้านสาปแช่งและถูกนำมาใช้เป็น“ การนำเสนอ” ในร่าง HTML5 ต่างๆ (พูดกว้าง ๆ ) แต่จากนั้นพวกเขาก็ตระหนักว่าแท็กเหล่านี้ถูกใช้อย่างกว้างขวาง แทนที่จะปล่อยให้พวกเขาพวกเขาพัฒนาคำจำกัดความ "ความหมาย" แบบใหม่สำหรับพวกเขาเพื่อให้สามารถใช้องค์ประกอบ แต่ยังคงแสร้งทำเป็นเข้มงวดเกี่ยวกับมาร์กอัป คำจำกัดความใหม่มีหลากหลายตั้งแต่ร่างหนึ่งไปยังอีกร่างหนึ่งและคลุมเครือ: คุณแทบจะไม่สามารถหาคนสองคนที่เข้าใจและตีความเหมือนกัน

ขออภัยไม่มีการอ้างอิง คำอธิบายข้างต้นเป็นผลมาจากการติดตามการเปลี่ยนแปลงและการอ่านแบบร่างและการสนทนาซึ่งมักเกิดขึ้นระหว่างบรรทัด พวกเขาไม่ได้บอกสาเหตุอย่างชัดเจน ฉันยังคงคิดว่ามันเป็นเรื่องจริง

บทสรุปคือ: ไปต่อ ไม่มีประโยชน์อะไรที่นี่ bและiองค์ประกอบทำสิ่งเดียวกันเช่นที่พวกเขามักจะมีพวกเขาทำให้ตัวอักษรตัวหนาหรือตัวเอียงตามลำดับด้วยประการตามปกติ นี่คือความจริงที่คุณควรคำนึงถึงไม่ใช่ "ความหมาย" แบบ quasischolastic ที่ไม่มีผลกระทบต่อเบราว์เซอร์เครื่องมือค้นหาหรือซอฟต์แวร์อื่น ๆ


3
ที่กล่าวว่าคุณสามารถทำตามความหมาย quasischolastic เพียงโดยการรักษา<b>เป็นชนิดของตลก<span>ที่เป็นค่าเริ่มต้นการแสดงผลเป็นตัวหนา จากนั้นถ้าคุณสามารถใส่ใจได้ให้ใช้คุณสมบัติของมันclassด้วยเพื่อที่ว่าเมื่อจำเป็นคุณสามารถใช้หลาย ๆ อย่างในคราวเดียวที่ใช้เพราะมันมีความหมายทั่วไป มัน quasischolastic ในแง่ที่ว่าคนจะคิดว่าคุณเสมือนอยู่ในหัวสำหรับการทำb.productname {font-weight: normal; font-style: italic; }หลังจากที่คุณเปลี่ยนความคิดของคุณเกี่ยวกับการนำเสนอและการใช้ประโยชน์ของทางเลือกที่ชาญฉลาดของคุณความหมายมาร์กอัป ;-)
สตีฟเจสซอพ

1
@SteveJessop: สำหรับพวกเราบางคนในโลกที่ยังคงสนใจเรื่องขนาดไฟล์การพูด<b>this</b>ดูเหมือนว่าสมเหตุสมผลกว่า<span class="bold">this</b>(ค่าใช้จ่ายแปดไบต์ในอดีตนั้นน่าเบื่อพอส่วนค่าใช้จ่าย 23 ไบต์หลังดูบ้า) ฉันสงสัยว่าทำไม HTML ไม่เคยนิยามการแสดงแบบสั้นใด ๆ<@quack>this</@>ที่เทียบเท่ากัน<span class="quack">this</span>?
supercat

4
@supercat: นั่นคือสิ่งที่การเข้ารหัสการถ่ายโอน: gzip สำหรับ หรืออาจจะเป็น XML + XSLT ขึ้นอยู่กับว่าคุณต้องการแนะนำสัญกร
Steve Jessop

7
@supercat class='bold'? Suku แห่งประมวลกฎหมายไร้สาระจะมีคำพูดกับคุณเกี่ยวกับการใช้ชื่อชั้นต่ำ พิจารณานี้ครั้งล่าสุดของคุณboldRedText

2
ในวันที่ 14.4 โมเด็ม, CSS เป็นความคิดที่ยังไม่ได้รับรู้หรือนำไปใช้ในตัวแทนผู้ใช้ใด ๆ องค์ประกอบ HTML เหล่านี้เป็นเพียงแค่สิ่งที่สืบทอดมา แต่โบราณเราจะติดอยู่ตลอดไป
Michael Hampton

11

<b>และ<i>แท็กเกิดขึ้นกับแนวความคิดของ "กล้า" และ "เอียง" ปัญหาคือสิ่งเหล่านี้อาจไม่มีความหมายอย่างสมบูรณ์สำหรับตัวแทนผู้ใช้บางราย ตัวอย่างเช่นเสียง "ตัวเอียง" ในโปรแกรมอ่านหน้าจอสำหรับคนตาบอดคืออะไร

แทนที่พวกเขาด้วย<strong>และ<em>ลบการเชื่อมโยงโดยตรงกับแนวคิดการพิมพ์ แต่ตัวแทนผู้ใช้สามารถแสดงผลได้ตามที่เห็นสมควร


2
พูดอย่างเคร่งครัดเอเจนต์ผู้ใช้สามารถแสดงผล<b>และ<i>อย่างไรก็ตามก็เห็นว่าเหมาะสมเช่นกัน
Jonathan Eunice

8

<b>และ<i>แท็กมีความจำเป็นเมื่อคุณอย่างแท้จริงต้องมีข้อความใน 'กล้า' หรือ 'เอียง'

หากคุณกำลังเขียนสมการใน HTML ที่ ' I ' เอียงมีความหมายแตกต่างจาก 'I' ที่ไม่ใช่ตัวเอียงเป็นสิ่งสำคัญที่จะต้องทำให้ความแตกต่างนั้น

ฉันคิดว่าพวกเขาในลักษณะเดียวกับที่ฉันคิด<sup>หรือ<sub>แท็ก - คุณไม่สามารถแสดงความหมายของสมการได้อย่างถูกต้องโดยไม่ต้องใช้แท็ก 'ลักษณะที่ปรากฏ'

วิธีพิถีพิถันจะใช้ MathML หรือ TeX แต่การสนับสนุนเบราว์เซอร์ยังไม่มี ...


14
ฉันหวังว่าผู้คนที่พยายามผลักดันมาร์กอัป "semantic" จะจำได้ว่าในบางกรณีแท็กเก่านั้นมีความหมายถูกต้องมากกว่าทางเลือกอื่น ๆ หากข้อความในเอกสารอ้างอิงถึงคำที่ขีดเส้นใต้บางคำดังนั้นการแสดงคำเหล่านั้นในลักษณะอื่นใดนอกเหนือจากการขีดเส้นใต้คำเหล่านั้นอาจผิดไปทางความหมาย หากมีการนำเข้าข้อความจากระบบซึ่งทำให้บางส่วนของมันin a monospaced typefaceแต่ซึ่งไม่ทำให้แตกต่างว่าทำไมแล้วใช้หนึ่งใน "การแทนที่" เพราะ<tt>จะแอบแฝงหมายความว่ารหัสที่ทำการนำเข้ารู้มากกว่าที่มันทำเกี่ยวกับวัตถุประสงค์
supercat

ฉันเห็นด้วยกับความเหมาะสมของbและiในบริบททางคณิตศาสตร์ (และทางกายภาพ) แต่การใช้งานดังกล่าวไม่ได้กล่าวถึงในแบบร่าง HTML5 เมื่อฉันตั้งคำถามนี้มันได้รับการตอบรับอย่างจริงจังว่ามีการใช้อักขระพิเศษ Unicode (ตัวอักษรตัวหนาเชิงคณิตศาสตร์และตัวเอียงทางคณิตศาสตร์) แทน!
Jukka K. Korpela

1
@supercat: การเรียกร้องทั่วไป (ซึ่งฉันยอมรับไม่ได้บังคับเสมอ) คือคุณไม่ควรเขียนเช็คว่าตัวแทนผู้ใช้ไม่สามารถจ่ายเงินได้ โดยเฉพาะอย่างยิ่งคุณไม่ควรเขียนหน้าเว็บที่อ้างว่าโปรแกรมอ่านหน้าจอของใครบางคนจะพูดด้วยตัวอักษรแบบโมโนสเปซ หลักสูตรนี้ไม่สนใจว่าหน้าเว็บของคนส่วนใหญ่ไม่ได้ทำงานกับโปรแกรมอ่านหน้าจออย่างน้อยที่สุดดังนั้นจึงไม่มีประเด็นที่พวกเขาจะต้องจ่ายราคาใด ๆ สำหรับการเข้าถึงตามสมมุติฐานที่พวกเขาไม่สนใจ แต่ W3C จงใจละเลยข้อเท็จจริงที่เป็นหลักการ
Steve Jessop

ในกรณีของการนำเข้ารหัสฉันคิดว่าคำตอบที่เป็นที่ยอมรับ (ถ้าไม่น่าพอใจ) class="source-X-asserts-it-should-be-monospace"จึงแยกความแตกต่างจากข้อความที่มีความแตกต่างทางความหมายในแง่ที่ว่าแหล่งข้อมูลอื่นอ้างเหตุผลไม่ทราบว่าควรเป็นแบบอวกาศ ผลคือการตรวจสอบสิ่งที่ HTML พิจารณาว่าไม่ดีแทนที่จะแปลความเลวร้ายเป็น HTML เท่านั้น
Steve Jessop

1
@SteveJessop: กล่าวอีกนัยหนึ่งเราควรปรับปรุง<TT>ซึ่งแนะนำโดยตรงว่าควรตั้งข้อความในฟอนต์ monospace ที่มีการตัดกันซึ่งมาร์กอัปซึ่งหลังจากผ่านการเลเยอร์สองสามเลเยอร์จะบ่งบอกว่าข้อความควรแสดงเป็นฟอนต์เฉพาะบางอันที่เกิดขึ้นกับ ใจเดียว ในขณะที่ฉันจะไม่คาดหวังให้ผู้อ่านหน้าจอที่จะทำสิ่งที่เป็นประโยชน์กับ<tt>ผมจะคาดหวังว่าพวกเขาจะมีเวลามากขึ้นกับกว่า<tt> <span class="styleNameThisImportUtilityPicked">
supercat

0

หลักการออกแบบที่อ้างอิงแท็ก HTML ก็คือพวกเขาควรจะเป็น "ความหมาย" ซึ่งควรจะระบุความหมายและความตั้งใจมากกว่าการสอนระดับต่ำ

การทดสอบแบบดั้งเดิมคือ "สามารถใช้แท็กอย่างมีความหมายในเบราว์เซอร์สำหรับคนตาบอด"

ดังนั้นสำหรับเบราว์เซอร์ที่ใช้เสียง "i" สำหรับตัวเอียงนั้นค่อนข้างไร้ประโยชน์เพราะคุณไม่สามารถพูดเป็นตัวเอียงได้ อย่างไรก็ตามแท็ก "em" มีความหมายเนื่องจากอุปกรณ์เสียงสามารถเน้นวลีได้หลายวิธี: โดยการเพิ่มระดับเสียง, เพิ่มระดับเสียงหรือเปลี่ยนสำเนียง เครื่องแสดงผลอักษรเบรลล์สามารถเน้นโดยเพิ่มจุดเปลี่ยนระยะห่างเปลี่ยนขนาดหรือเพิ่มการสั่นสะเทือน


ในฐานะที่คุณบอกว่าคุณไม่สามารถมีคำพูดตัวเอียง - แต่คุณสามารถมีตัวเอียงที่ความเป็นจริงมันเป็นตัวเอียงมีความหมายความหมายเช่นสม ...
SAL

2
'ดังนั้นสำหรับเบราว์เซอร์ที่ใช้เสียง "i" สำหรับตัวเอียงนั้นค่อนข้างไร้ประโยชน์เพราะคุณไม่สามารถพูดตัวเอียงได้' ... ใช่แล้ว<img>เพราะคุณไม่สามารถพูดรูปภาพและระบบที่ไม่มีฮาร์ดแวร์เสียงไม่สามารถแสดง<audio>ได้ บางครั้งการนำเสนอเป็นจุดประสงค์สำคัญขององค์ประกอบและไม่จำเป็นต้องได้รับการสนับสนุนในระดับสากล (และไม่เหมือนกับองค์ประกอบอื่น ๆ ที่อาจไม่ได้รับการสนับสนุน<i>ไม่ต้องการข้อความ ALT เนื่องจากข้อเท็จจริงที่ว่าตัวเอียงเป็นข้อมูลที่สูญหายเท่านั้น) ปัญหาที่แท้จริงคือเมื่อมีคนบอกว่าiเมื่อพวกเขาหมายถึง em
nmclean

@SAL: ทำไมไม่มีใครพูด "ตัวเอียง"? หากการพูดปกติถูกพูดด้วยค่า "pitch" ที่ 100 การมีข้อความภายใน<i>แท็กให้ใช้ pitch ที่ 120 และข้อความภายใน<b>tag ใช้ 80 และการมีข้อความภายในการ<tt>ซิงโครไนซ์คำพูดกับเครื่องพิมพ์ดีดที่สังเคราะห์จะทำให้ผู้ฟัง เพื่อแยกความแตกต่างในรูปแบบของมาร์กอัป งานจะยากกว่านี้มากถ้าแทนที่จะใช้<i>แท็กข้อความแทนที่จะใช้แท็ก<span class="whatever">ที่ทำให้ส่วนของข้อความแสดงโดยใช้ "Acme SemiScript" แทนที่จะเป็น "Waldorf Sans" [ตระกูลตัวอักษรบางตัว ...
supercat

... ไม่มีแบบอักษรตัวเอียงที่ดี แต่บางครั้งตัวอักษรแบบตัวเอียงเท่านั้นอาจดูดีเมื่อตั้งค่าภายในข้อความที่เขียนโดยใช้ตระกูลแบบอักษรอื่น]
supercat

@supercat คุณกำลังอธิบายการเน้นคำพูดไม่ใช่ตัวเอียง หากคุณต้องการเสียงที่แตกต่างจากนั้นคุณควรใช้ em เช่น nmclean กล่าว หากคุณต้องการให้ตัวเอียงให้ใช้ i ไม่สำคัญว่าโปรแกรมอ่านหน้าจอจะไม่รู้ว่าต้องทำอย่างไรเพราะไม่มีอะไรให้ทำ ชื่อหนังสือมักจะเป็นตัวเอียง แต่คุณไม่ออกเสียงใด ๆ เลย
DCShannon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.