활동학습
모둠별로 쥬스메이커 프로젝트를 하나 골라서 접근성 향상을 위해 접근성 기능을 구현해봅시다.
# STEP
- 1. 모둠원 중 한 명의 쥬스 메이커 프로젝트를 선정하여 모두 클론해옵니다.
- 2. Accessbility Inspector의 Audit 탭을 통해 문제지점을 모둠원 다같이 파악합니다.
- 3. 각자 WWDC 2019의 Accessibility Inspector 영상과 Writing Great Accessibility Labels 영상을 토대로 모둠원- 모두 함께 해결방법을 찾아봅니다.
- 4. 하나의 프로젝트에 모두의 의견을 모아 접근성 기능을 구현합니다.
- 5. Accessibility Label, Hint, Value가 각각 어떤 차이가 있고, 어떻게 쓰이는지 정리해봅시다
- label: 접근성 요소가 무엇인지 설명하는 짧은 localizing된 문자열
- value: 접근성 요소의 값을 설명하는 localizing된 문자열
- hint: 접근성 요소의 실행 결과를 설명하는 짧은 localizing된 문자열
# HINT
- Dynamic Type Size를 적용하여 사용자 환경설정에 맞게 글자 크기가 변하도록 구현합니다
- 글자 크기 변경에 따른 화면 레이아웃 변경에 어떻게 유연하게 대처할 수 있을지 고민해봅니다
- 눈을 감고도 화면을 이해할 수 있도록 화면 읽기가 제대로 동작하도록 구현합니다
- 화면을 읽어줄 때 “딸기, 십, 바나나, 십” 등으로 읽으면 사용자는 '십’이 무슨 의미인지 알 수 없습니다
- “딸기 재고 열 개, 바나나 재고 마흔 다섯 개” 등으로 읽을 수 있게 해주세요
```swift
// ExpoEntryCell.swift
override func awakeFromNib() {
super.awakeFromNib()
entryImageView = UIImageView()
entryImageView.translatesAutoresizingMaskIntoConstraints = false
self.contentView.addSubview(entryImageView)
entryNameLabel = UILabel()
entryNameLabel.translatesAutoresizingMaskIntoConstraints = false
entryNameLabel.font = UIFont.preferredFont(forTextStyle: .title1)
entryNameLabel.adjustsFontForContentSizeCategory = true
entryNameLabel.numberOfLines = 0
entryShortDescriptionLabel = UILabel()
entryShortDescriptionLabel.translatesAutoresizingMaskIntoConstraints = fale
entryShortDescriptionLabel.font = UIFont.preferredFont(forTextStyle: .calout)
entryShortDescriptionLabel.adjustsFontForContentSizeCategory = true
entryShortDescriptionLabel.numberOfLines = 0
stackView = UIStackView(arrangedSubviews: [entryNameLabel, entyShortDescriptionLabel])
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.alignment = .fill
stackView.distribution = .fill
stackView.contentMode = .scaleAspectFit
stackView.axis = .vertical
self.contentView.addSubview(stackView)
NSLayoutConstraint.activate([
entryImageView.widthAnchor.constraint(equalTo: entyImageView.heightAnchor),
entryImageView.centerYAnchor.constraint(equalTo: conentView.centerYAnchor),
entryImageView.leadingAnchor.constraint(equalTo: conentView.leadingAnchor, constant: 15.0),
entryImageView.widthAnchor.constraint(equalTo: contentView.widthAnchor, muliplier: 0.2),
stackView.trailingAnchor.constraint(equalTo: conentView.trailingAnchor),
contentView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor, contant: 10),
stackView.leadingAnchor.constraint(equalTo: entyImageView.trailingAnchor, constant: 8.0),
stackView.topAnchor.constraint(equalTo: contentView.topAnchor, contant: 10)
])
}
```
