Tracking ในการพัฒนาแอปมือถือ — สาระสำคัญและการตั้งค่าระยะห่างระหว่างตัวอักษร

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-24 เวลาอ่าน: 9 นาที

Tracking คือการเปลี่ยนแปลงระยะห่างระหว่างตัวอักษรอย่างสม่ำเสมอ在整个ส่วนข้อความที่เลือกไว้ ต่างจาก kerning ซึ่งปรับระยะห่างระหว่างคู่ตัวอักษรเฉพาะ Tracking ใช้กับทุกตัวอักษรเท่าๆ กัน: tracking แบบบวกจะเพิ่มระยะห่าง tracking แบบลบจะลดระยะห่าง ตามข้อมูลจาก MDN Web Docs ในอินเทอร์เฟซเว็บ tracking ถูก implement ผ่านคุณสมบัติ CSS letter-spacing ซึ่งรองรับหน่วยความยาวทุกประเภทและสืบทอดไปยังองค์ประกอบลูก

สาระสำคัญ

  • Tracking — ระยะห่างระหว่างตัวอักษรที่สม่ำเสมอ ซึ่งใช้กับทุกตัวอักษรในส่วนข้อความ
  • แตกต่างจาก kerning: tracking เหมือนกันทุกตัวอักษร ส่วน kerning เฉพาะเจาะจงสำหรับแต่ละคู่
  • Tracking แบบบวกช่วยเพิ่ม ความอ่านง่าย ของข้อความขนาดเล็ก และใช้ในการเข้าถึง (accessibility)
  • Tracking แบบลบใช้ใน หัวเรื่อง เพื่อสร้างข้อความที่เน้นและกระชับ
  • บน iOS implement ผ่าน .kern ใน NSAttributedString บน Android ผ่าน letterSpacing

Tracking ในการพิมพ์คืออะไร

Tracking คือการเปลี่ยนแปลงระยะห่างระหว่างตัวอักษรที่ใช้อย่างสม่ำเสมอกับทุกตัวอักษรในบล็อกข้อความ ต่างจาก kerning ที่แต่ละคู่ตัวอักษรได้รับการปรับแต่งเฉพาะตามตาราง kerning ของฟอนต์ tracking ถูกกำหนดด้วยค่าตัวเลขเดียวสำหรับทั้งช่วง Tracking แบบบวกจะเพิ่มระยะห่าง (การกระจาย) tracking แบบลบจะลดระยะห่าง (การบีบอัด)

คำนี้มีที่มาจากการพิมพ์แบบโลหะ ซึ่งระยะห่างระหว่างตัวอักษรถูกรับด้วยระยะทางกายภาพระหว่างตัวพิมพ์ ในการพิมพ์ดิจิทัล tracking ถูกใช้บนตาราง kerning: ฟอนต์จะใช้คู่ kerning ในตัวก่อน จากนั้นระบบจะเพิ่ม tracking ที่สม่ำเสมอให้กับทุกตัวอักษร ระยะห่างผลลัพธ์ = kerning + tracking ซึ่งสำคัญเมื่อบีบอัดข้อความอย่างรุนแรง

หน่วยวัด: tracking สามารถกำหนดเป็นหน่วยสัมบูรณ์ (จุด, พิกเซล, มิลลิเมตร) และหน่วยสัมพัทธ์ (em, เปอร์เซ็นต์ของขนาดฟอนต์) ในการพัฒนามือถือ นิยมกำหนด tracking เป็นจุด (iOS) หรือ sp (Android) เป็นค่าสัมบูรณ์ ในเว็บใช้ em เป็นค่าสัมพัทธ์ หน่วยสัมพัทธ์ดีกว่าสำหรับ accessibility เนื่องจากปรับขนาดเมื่อผู้ใช้เปลี่ยนขนาดฟอนต์

Tracking และ kerning: ความแตกต่างพื้นฐาน

ความสับสนระหว่าง tracking และ kerning เป็นหนึ่งในข้อผิดพลาดที่พบบ่อยที่สุดของนักออกแบบและนักพัฒนามือใหม่ Kerning ทำงานในระดับจุลภาค — ปรับระยะห่างระหว่างคู่ตัวอักษรเฉพาะ (AV, Te, To) ตามรูปทรงของมัน Tracking ทำงานในระดับมหภาค — เลื่อนทุกตัวอักษรในส่วนอย่างสม่ำเสมอ โดยไม่พิจารณารูปทรง

เอฟเฟกต์ทางสายตา: เมื่อใช้ kerning ระยะห่างระหว่างคู่ตัวอักษรต่างๆ จะแตกต่างกัน — ระหว่าง A และ V น้อยกว่าระหว่าง A และ I เพราะรูปทรงของตัวอักษรชดเชยซึ่งกันและกัน เมื่อใช้ tracking ระยะห่างทั้งหมดเท่ากัน — ระหว่าง A และ V, A และ I, T และ o — ทุกที่มีการเลื่อนเท่ากัน ทำให้ tracking เป็นเครื่องมือปรับระดับโลก และ kerning เป็นเครื่องมือปรับแต่งละเอียด

การใช้ร่วมกัน: ในการพิมพ์อินเทอร์เฟซ tracking และ kerning ใช้ร่วมกัน ฟอนต์มีตาราง kerning สำหรับการปรับแต่งพื้นฐาน และนักพัฒนาเพิ่ม tracking สำหรับการจัดแต่งหรือ accessibility ตาราง kerning ถูกใช้ก่อน จากนั้นจึงเพิ่ม tracking ทับ เมื่อใช้ tracking แบบลบ (การบีบอัด) คู่ kerning อาจสร้างการซ้อนทับที่ไม่พึงประสงค์ — ควรตรวจสอบคู่ที่มีปัญหา

ลักษณะKerningTracking
ขอบเขตคู่ตัวอักษรข้อความทั้งหมด
ค่าเฉพาะสำหรับแต่ละคู่ค่าเดียวสำหรับทุกตัวอักษร
เป้าหมายความสม่ำเสมอทางสายตาการปรับความหนาแน่น
การสังเกตในหัวเรื่องตั้งแต่ 24ptทุกขนาดตัวอักษร
iOS attribute.kern (nil หรือ 0).kern (ค่าตัวเลข)

Tracking แบบบวกและลบ: เมื่อใดควรใช้

Tracking แบบบวก เพิ่มระยะห่างระหว่างตัวอักษร ใช้เพื่อปรับปรุงความอ่านง่ายของข้อความขนาดเล็ก (10-13pt) ซึ่งตัวอักษรจะมองเห็นติดกันเมื่อใช้ระยะห่างมาตรฐาน นอกจากนี้ยังใช้ใน accessibility สำหรับผู้ใช้ที่มี dyslexia — ระยะห่างระหว่างตัวอักษรที่เพิ่มขึ้นช่วยให้จดจำตัวอักษรได้ง่ายขึ้น ค่าทั่วไป: 0.3-1pt สำหรับ iOS, 0.02-0.05em สำหรับเว็บ

Tracking แบบลบ ลดระยะห่างระหว่างตัวอักษร ใช้ในหัวเรื่อง (ตั้งแต่ 24pt) และข้อความเน้น ซึ่งการจัดวางแบบกระชับดูเป็นหนึ่งเดียวและทันสมัย ขนาดตัวอักษรใหญ่ทนต่อการบีบอัดได้ดีเพราะระยะห่างระหว่างตัวอักษรดูใหญ่ ค่าทั่วไป: ตั้งแต่ -0.3 ถึง -1pt ข้อจำกัด: เมื่อ tracking น้อยกว่า -1pt ตัวอักษรอาจทับซ้อนกัน โดยเฉพาะในคู่ที่มีองค์ประกอบยื่น (fi, fj, TT)

กฎเชิงประจักษ์: สำหรับแต่ละขนาดตัวอักษรมีช่วง tracking ที่ยอมรับได้ ยิ่งฟอนต์ใหญ่เท่าไร ยิ่งต้องการ tracking น้อยลงเพื่อความอ่านง่ายที่เหมาะสม สูตร: tracking ที่เหมาะสม ≈ font-weight * 0.01 - font-size * 0.001 สำหรับฟอนต์หนา (weight 700) 16pt: 700 * 0.01 - 16 * 0.001 = 6.84 ซึ่งเมื่อปรับตามฟอนต์แล้วให้ประมาณ 0.5pt ของ tracking แบบบวก

Tracking สำหรับข้อความประเภทต่างๆ

Body text (14-18pt): ไม่ต้องการ tracking หรือใช้ tracking แบบบวกเล็กน้อย 0.1-0.3pt ฟอนต์มืออาชีพมีระยะห่างที่เหมาะสมสำหรับข้อความหลักอยู่แล้ว การเปลี่ยนแปลง tracking ของ body text ควรมีเหตุผลจากดีไซน์หรือข้อกำหนด accessibility หัวเรื่อง (20-36pt): สามารถใช้ tracking แบบลบตั้งแต่ -0.3 ถึง -0.8pt ขึ้นอยู่กับฟอนต์และน้ำหนัก ตัวพิมพ์ใหญ่ทั้งหมด (ALL CAPS): แนะนำ tracking แบบบวก 0.5-2pt เนื่องจากตัวพิมพ์ใหญ่ใน ALL CAPS จะมองเห็นติดกันโดยไม่มีระยะห่างเพิ่มเติม

ลักษณะเฉพาะของฟอนต์: ฟอนต์ประเภท grotesque geometry (Helvetica, Inter, SF Pro) ทนต่อ tracking แบบลบได้ดีกว่าฟอนต์ serif แบบเก่า (Times, Georgia, PT Serif) ฟอนต์ serif มีเชิงที่สร้างการเชื่อมต่อทางสายตาระหว่างตัวอักษร และการบีบอัดทำให้ข้อความอ่านไม่ได้ สำหรับฟอนต์ serif แนะนำเฉพาะ tracking แบบบวกเท่านั้น

การ implement tracking บน iOS และ Android

บน iOS tracking ถูก implement ผ่าน attribute .kern เดียวกันใน NSAttributedString กับ kerning แต่มีความแตกต่าง: สำหรับ tracking ระบุค่าตัวเลขที่ไม่ใช่ nil nil — kerning เริ่มต้น (จากตารางฟอนต์), 0 — ปิด kerning, ตัวเลขอื่นใด — tracking ที่เพิ่มเหนือตาราง kerning หมายความว่าเมื่อตั้งค่า .kern = 2 ทุกตัวอักษรจะได้รับระยะห่างระหว่างตัวอักษร +2pt เหนือคู่ kerning ในตัว

swift
let text = "Heading with tracking"
let attributedString = NSMutableAttributedString(string: text)

// การติดตามเชิงบวก +0.8pt
attributedString.addAttribute(
    .kern,
    value: 0.8,
    range: NSRange(
        location: 0,
        length: text.count
    )
)

// UILabel พร้อมการติดตาม
label.attributedText = attributedString

SwiftUI ใช้ modifier .tracking() สำหรับ Text ซึ่งรับ CGFloat ต่างจาก UIKit tracking ของ SwiftUI ใช้กับข้อความทั้งหมดภายใน modifier และไม่สามารถใช้บางส่วนได้โดยไม่แบ่งเป็นหลาย Text-blocks SwiftUI จัดการการรวมกันของ kerning และ tracking โดยอัตโนมัติ โดยใช้ tracking เหนือตาราง kerning ของฟอนต์

Android ใช้คุณสมบัติ letterSpacing ใน TextView ซึ่งกำหนดเป็น em (ตัวคูณเทียบกับขนาดฟอนต์) ค่า 0 — tracking เริ่มต้น, 0.05 — เพิ่ม 5% ของ em, -0.02 — ลดลง ใน Android letterSpacing ทำงานเป็น tracking (สม่ำเสมอสำหรับทุกตัวอักษร) และตาราง kerning ของฟอนต์ถูกใช้โดยอัตโนมัติที่ระดับเรนเดอร์ Minikin

groovy
// ในเลย์เอาต์ XML
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text with tracking"
    android:letterSpacing="0.08"
    android:textSize="12sp" />

// โดยการเขียนโปรแกรมใน Kotlin
val textView: TextView = findViewById(R.id.smallText)
textView.letterSpacing = 0.08f

Compose ใน Android ใช้พารามิเตอร์ letterSpacing ใน TextStyle ซึ่งกำหนดเป็น sp เช่น TextStyle(letterSpacing = 0.5.sp) ให้ tracking 0.5 sp ต่างจากแนวทาง XML Compose อนุญาตให้รวม letterSpacing กับพารามิเตอร์การพิมพ์อื่นๆ ในออบเจกต์ TextStyle เดียว ซึ่งทำให้สร้างระบบดีไซน์ได้ง่ายขึ้น

การตั้งค่า letter-spacing ในการพัฒนาเว็บ

ในเว็บ tracking ถูก implement ผ่านคุณสมบัติ CSS letter-spacing ซึ่งรับหน่วยความยาวใดๆ หรือคำสำคัญ normal ค่า normal เท่ากับ 0 (ไม่มีระยะห่างระหว่างตัวอักษรเพิ่มเติม) คุณสมบัตินี้สืบทอดได้ รองรับค่าลบ และสามารถทำ animation ได้ ตาม CSS Specification letter-spacing ถูกใช้หลังจากตาราง kerning ของฟอนต์

css
/* Positive tracking for small text */
.caption {
    font-size: 11px;
    letter-spacing: 0.03em;
}

/* Negative tracking for headings */
h1 {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* Tracking for uppercase */
.uppercase-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

em vs px: letter-spacing ใน em ปรับขนาดเมื่อ font-size เปลี่ยนแปลง และดีกว่าสำหรับ accessibility px ไม่ปรับขนาดและอาจทำให้ไม่สอดคล้องเมื่อข้อความถูกขยายโดยเบราว์เซอร์ (Zoom) คำแนะนำ: ใช้ em เสมอสำหรับ letter-spacing ข้อยกเว้น — กรณีที่ tracking ต้องคงที่โดยไม่ขึ้นกับขนาดฟอนต์ เช่น ในโลโก้

Animation ของ letter-spacing: คุณสมบัตินี้รองรับ CSS transitions และ animations ซึ่งช่วยให้สร้างเอฟเฟกต์การปรากฏของข้อความอย่างนุ่มนวล Animation จาก letter-spacing: -0.05em ถึง letter-spacing: 0.01em เมื่อโหลดหัวเรื่องเป็นเทคนิคยอดนิยมในอินเทอร์เฟซสมัยใหม่ ประสิทธิภาพ: animation ของ letter-spacing ทำให้เกิด reflow (การคำนวณ layout ใหม่) เนื่องจากเปลี่ยนความกว้างของข้อความ ใช้ transform และ opacity สำหรับ animation ที่มีประสิทธิภาพสูงเมื่อเป็นไปได้

Accessibility และ tracking ในอินเทอร์เฟซมือถือ

Tracking ส่งผลโดยตรงต่อ ความอ่านง่ายของข้อความ สำหรับผู้ใช้ที่มีข้อจำกัดทางสายตาและ dyslexia WCAG 2.2 Guideline 1.4.12 (Text Spacing) กำหนดให้ข้อความต้องไม่สูญเสียเนื้อหาเมื่อเพิ่มระยะห่างระหว่างตัวอักษร ระหว่างบรรทัด และระหว่างย่อหน้าถึงค่าที่กำหนด letter-spacing ต้องทนต่อการเพิ่มขึ้นถึง 0.12em โดยไม่ตัดเนื้อหาหรือซ้อนทับองค์ประกอบ

Dyslexia: งานวิจัยของ British Dyslexia Association แสดงให้เห็นว่าการเพิ่ม letter-spacing ถึง 0.12em ช่วยเพิ่มความเร็วในการอ่านของผู้ใช้ที่มี dyslexia ได้ 10-15% อย่างไรก็ตามขึ้นอยู่กับแต่ละบุคคล — ผู้ใช้บางคนชอบระยะห่างมาตรฐาน iOS และ Android มีการตั้งค่า accessibility ของระบบสำหรับเพิ่มระยะห่างระหว่างตัวอักษร ซึ่งแอปควรให้เกียรติ

กฎสำหรับนักพัฒนา: อย่าใช้ fixed widths/heights ที่อาจเสียหายเมื่อเพิ่ม letter-spacing หลีกเลี่ยง overflow: hidden บนคอนเทนเนอร์ที่มีข้อความโดยไม่ตรวจสอบ accessibility ทดสอบอินเทอร์เฟซด้วย letter-spacing ที่เพิ่มขึ้นถึง 0.12em บนทุกหน้าจอ หากดีไซน์เสียหาย ให้ปรับโครงสร้างหน้า ไม่ใช่ละเลย accessibility

การรองรับแพลตฟอร์ม: iOS เพิ่ม letter-spacing โดยอัตโนมัติเมื่อเปิดใช้ Larger Text ในการตั้งค่าการเข้าถึง หากใช้ UIFont.preferredFont Android มีตัวเลือก類似กันผ่าน FontScale นักพัฒนาไม่ควรปิดการตั้งค่าเหล่านี้ สถานการณ์ทดสอบ: เปิดขนาดข้อความสูงสุดในการตั้งค่าอุปกรณ์และตรวจสอบว่า tracking ไม่ทำให้ layout ของอินเทอร์เฟซเสียหาย

คำถามที่พบบ่อย

จะแยก tracking ออกจาก kerning ในโค้ดได้อย่างไร?

บน iOS .kern = nil — kerning เริ่มต้นจากตารางฟอนต์ .kern = 0 — ปิด kerning .kern = ตัวเลขใดๆ — tracking ซึ่งเพิ่มเหนือตาราง kerning ใน Android letterSpacing — เป็น tracking เสมอ

ควรใช้ tracking เท่าใดสำหรับตัวพิมพ์ใหญ่ทั้งหมด?

สำหรับข้อความตัวพิมพ์ใหญ่ (ALL CAPS) ให้ใช้ tracking แบบบวก 0.05-0.15em ตัวพิมพ์ใหญ่ไม่มีส่วนยื่นและมองเห็นติดกัน บน iOS: .kern = 1-2pt สำหรับตัวพิมพ์ใหญ่ขนาด 14-18pt

Tracking สามารถเป็นลบในเว็บได้หรือไม่?

ได้ คุณสมบัติ CSS letter-spacing รองรับค่าลบ ค่าต่ำสุดถูกจำกัดโดยเบราว์เซอร์ — โดยประมาณ -0.1em หลังจากนั้นตัวอักษรจะเริ่มซ้อนทับกัน ใช้ tracking แบบลบเฉพาะหัวเรื่องตั้งแต่ 24pt

Tracking ส่งผลต่อประสิทธิภาพอย่างไร?

Tracking ไม่ส่งผล โดยตรงต่อ FPS ขณะเลื่อน อย่างไรก็ตามการเปลี่ยน letter-spacing ใน CSS ทำให้เกิด reflow เนื่องจากความกว้างของบล็อกข้อความเปลี่ยนไป สำหรับ animation ของ tracking ให้ใช้ transform แทนการเปลี่ยน letter-spacing โดยตรงเมื่อเป็นไปได้

จะตรวจสอบ accessibility ของ tracking ได้อย่างไร?

เพิ่ม letter-spacing ถึง 0.12em ผ่านเครื่องมือของเบราว์เซอร์หรือการตั้งค่า accessibility ตรวจสอบว่าข้อความไม่ถูกตัด ไม่ซ้อนทับกับองค์ประกอบข้างเคียง และไม่หลุดออกจากคอนเทนเนอร์ เนื้อหาต้องไม่หายไปไม่ว่าการตั้งค่าใดๆ

สรุป

  • Tracking — ระยะห่างระหว่างตัวอักษรที่สม่ำเสมอ เหมือนกันทุกตัวอักษรในบล็อกข้อความ
  • แตกต่างจาก kerning ด้วย ความเป็น global: tracking ไม่พิจารณารูปทรงของคู่ตัวอักษรเฉพาะ
  • Tracking แบบบวกช่วยเพิ่ม ความอ่านง่าย ของข้อความขนาดเล็กและตัวพิมพ์ใหญ่ ใช้ใน accessibility
  • Tracking แบบลบใช้ใน หัวเรื่อง ตั้งแต่ 24pt สำหรับการจัดวางแบบเน้นกระชับ
  • บน iOS implement ผ่าน .kern ด้วยค่าตัวเลข บน Android ผ่าน letterSpacing
  • ในเว็บใช้ letter-spacing ใน em เพื่อปรับขนาดตามการตั้งค่า accessibility
  • WCAG 2.2 กำหนดให้เนื้อหาต้องไม่สูญหายเมื่อ tracking ถึง 0.12em

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม