HTML <progress>: 진행도 출력 요소

HTML <progress>: 진행도 출력 요소

HTML <progress> 요소는 작업의 진행도를 나타내는 게이지를 표시합니다.

<label for="progress">10초 카운터:</label>
<progress id="progress" max="9" value="0"></progress>
const progress = document.querySelector('#progress')
setInterval(() => {
  if (progress.value === 9) {
    progress.value = 0
  } else {
    progress.value = progress.value + 1
  }
}, 1000)

라이브 에디터 (편집 가능)

  • 불러오는 중...

    특성

    전역 특성을 포함합니다.

    max

    <progress>가 나타내는 작업을 완료하려면 필요한 총 작업량을 지정합니다. 지정할 경우 0보다 큰 유효한 부동소수점 숫자를 사용해야 합니다. 기본 값은 1입니다.

    value

    현재까지 완료한 작업량을 지정합니다. 0 이상, max 특성의 값 이하인 유효한 부동소수점 숫자를 사용해야 합니다. value 특성을 지정하지 않을 경우, 작업이 언제 완료될지 특정할 수 없는 불확실한 상태를 나타내게 됩니다.

    <meter> 요소와는 달리, <progress>value는 항상 0 이상이어야 하고, min 특성은 지정할 수 없습니다.

    :indeterminate 의사 클래스를 사용해서 불확실한 상태의 <progress>만 선택할 수 있습니다.

    예제

    불확실 상태의 <progress>

    <progress></progress>
    

    라이브 에디터 (편집 가능)

    불러오는 중...

    접근성

    레이블

    특별한 상황이 아니라면 <progress>를 사용할 때 접근 가능한 레이블을 제공해야 합니다. role="progressbar"를 지정한 모든 요소와 마찬가지로 <progress>에도 표준 ARIA 레이블 특성인 aria-labelledbyaria-label을 사용할 수도 있지만, <progress><label>과 연결할 수도 있습니다.

    <progress>의 여는 태그와 닫는 태그 사이에 배치하는 콘텐츠는 <progress>를 지원하지 않는 아주 낡은 브라우저에서 대신 보여주는 콘텐츠일 뿐, 접근 가능한 레이블이 아닙니다.

    예제
    <label>업로드 중: <progress value="70" max="100">70 %</progress></label>
    
    <!-- 또는 -->
    
    <label for="progress-bar">업로드 중:</label>
    <progress id="progress-bar" value="70" max="100">
    

    특정 영역을 대표하기

    <progress>가 페이지 일부의 업데이트 진행도를 나타내는 역할인 경우에는, 해당 영역을 감싼 요소에 aria-busy="true"와 함께 <progress>를 가리키는 aria-describedby를 추가하세요. 나중에 업데이트가 끝난 후 aria-busy 특성은 제거하세요.

    예제
    <div aria-busy="true" aria-describedby="progress-bar">
      <!-- 콘텐츠 불러오는 중... -->
    </div>
    
    <progress id="progress-bar" aria-label="불러오는 중..."></progress>
    

    명세

    HTML Standard

    브라우저 호환성

    MDN browser-compat-data
    데스크톱모바일
    iOSAndroid
    SafariChromeFirefoxSafariChromeFirefoxSamsung Internet
    progress
    max
    value

    같이 보기