1. MDN Web Docs - scrollIntoView 한국어 문서 수정에 기여하게 된 계기
한국어 문서 수정에 기여하게 된 계기의 시작은 scroll-behvaior의 instant 옵션 history와 관계가 있다.
따라서, scrollIntoView의 scroll-behavior의 instant 옵션이 언제 어떻게 사라졌다가 언제 어떻게 다시 사용이 되었는지 history를 모두 정리해 보았다.
1-1. typescript의 scrollIntoView 옵션과 MDN Web Docs의 옵션의 차이점 발견
처음에는 typescript에서 scrollIntoView를 사용하려는데 behavior옵션이 MDN Web Docs의 영어 문서 내용과 다른 점을 발견하였다.
MDN Web Docs - scrollIntoView의 behavior 옵션에는 instant가 있는데 typescript에 없었다.
1-2. MDN Web Docs와 Typescript Github에서 history 알아보기
위와 같은 차이점을 알기 위해 MDN 과 Typescript Github에서 history를 찾아보았다.
[Typescript - scrollIntoView의 behavior옵션에서 instant가 빠진 이유]
- 2018년에 microsoft/TypeScript-DOM-lib-generator 에 위와 같은 pr이 머지되어 instant옵션이 사라졌다. (pr 내용 보러가기)
- 위와 같은 pr이 머지된 이유는 W3C CSSOM-View의 changes From 17 December 2013 To 31 January 2020 보면 알 수 있다.
위 사진의 내용을 보면 instant 옵션은 auto로 rename 되었다고 나와있으며 W3C의 scroll-behavior에 instant 옵션을 제거하는 PR이 merge된다. 따라서, 이걸 보고 typescript는 instant를 뺀것이다.
* 이 여파로 MDN에서도 instant 옵션이 빠졌다. 즉, MDN과 Typescript, W3C 모두 scrollIntoView에서 behavior 옵션에 instant옵션이 없었던 것이다.
[W3C/MDN - scrollIntoView의 behavior 옵션에 instant가 추가된 이유]
- 2022년에 W3C의 scroll-behavior옵션에 빠진 instant 옵션을 다시 추가하는 pr이 merge되면서 다시 MDN의 scroll-behavior의 instant 옵션이 추가된다.
- 추가된 이유는 Gecko, Blink, Webkit에서 아직 지원되는 scroll API에서 instant가 제공되고 있기 때문이라는 것이다. (자세한 내용은 위 pr주소에 가서 보면 됩니다.)
- W3C에 instant옵션이 추가가 되면서 MDN에도 추가 PR이 merge 된다.
[MDN의 scroll-behavior에 instant가 추가되었는데 왜 Typescript에서는 지원이 안되었을까?]
위에서 2022년에 MDN은 scroll-behavior에 instant 옵션을 추가했는데 왜 typescript에서는 지원이 안되었을까? 궁금하여 typescript github를 다시 찾아보았다.
[Typescript - scroll-behavior에 instant 옵션 추가]
찾아보니 2023년 1월에 scroll-behavior에 instant옵션이 추가된 PR이 머지되었고, 내가 겪었던 Typescript에서 instant가 사용되지 않은 이유는 Typescript 5버전 부터 해당 PR이 머지된 상태로 반영이 되어서 그렇다.
즉, 내가 Typescript 버전 4를 사용해서 instant가 없었던 것이다.
이로써, scrollIntoView에 관련된 복잡한 history를 모두 파악할 수 있었다.
(5줄 요약)
1. 2018년에 W3C에서 CSS에서 scroll-behavior의 instant 옵션을 auto로 대체
2. MDN과 Typescript는 W3C의 내용을 보고 instant 옵션 제거
3. 2022년에 Gecko, Webkit 등 다른 브라우저 엔진에서 scroll API로 scroll-behavior의 instant옵션이 auto와 다르게 사용된다는 PR이 merge되면서 W3C에 instant옵션 부활
4. MDN 영어 문서와 Typescript 5버전에서 instant옵션 부활하였지만 나는 Typescript 4버전을 사용하고 있었어서 instant옵션이 아직도 안생긴 줄 알았음
5. MDN 영어 문서와 달리 한국 문서에는 여전히 instant옵션이 빠져있었음
1-3. MDN Web Docs - scrollIntoView 한국어 문서의 문제점
- 한국어 문서에 behavior 옵션에 instant가 빠져있고 설명이 영어 문서와 달랐다.
- 매개변수 내용, Notes 등 한국어로 번역이 안되어있는 영어 내용들이 있었다.
- 예제 내용에 변수 선언을 var를 사용하고 있어 const로 변경하였다.
- 반환값, 매개변수 타이틀 등 없는 내용을 추가하였다.
2. MDN Web Docs - scrollIntoView 한국어 문서 문제점 수정 후 PR
위 1-3의 문제점들을 수정 후 PR 하였고 리뷰어에게 리뷰받고 Merge되었다.
이로써, 다른 사람들이 instant옵션에 혼동을 겪는 일이 없어졌으면 좋겠다.
'OpenSource' 카테고리의 다른 글
react-loading-skeleton 오픈소스(opensource) 기여 후기 (0) | 2023.04.14 |
---|---|
첫 오픈소스(opensource) 기여 후기 (0) | 2023.01.13 |