Freecodecamp: ํŽธ์ง‘๊ธฐ์˜ ๋‚ด์šฉ์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ ๊ฒ€ํ†  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 01์›” 08์ผ  ยท  61์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: freeCodeCamp/freeCodeCamp

Hello to HTML Elements ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž ์—์ด์ „ํŠธ : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2976.0 Safari/537.36 .
์ด ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด ์Šคํฌ๋ฆฐ ์ƒท ๋งํฌ๋ฅผ ํฌํ•จํ•˜์„ธ์š”.

๋‚ด ์ฝ”๋“œ :

        <h1>Hello</h1>

๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค ์Šคํฌ๋ฆฐ ๋ฆฌ๋” NVDA์™€ ์ƒ์šฉ JAWS for Windows๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์–ด๋Š ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋„ ํŽธ์ง‘๊ธฐ์—์„œ ๋ฌธ์ž, ๋‹จ์–ด ๋“ฑ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ๊ฒ€ํ†  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
CTRL + a๋ฅผ ๋ˆŒ๋Ÿฌ ํ…์ŠคํŠธ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ™”๋ฉด ํŒ๋…๊ธฐ๊ฐ€ ํ…์ŠคํŠธ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์‹œ๊ฐ ์žฅ์• ์ธ ๋ฐ ์‹œ๊ฐ ์žฅ์• ๊ฐ€์žˆ๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š”์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์ด ์‹ค์ œ ์ฃผ์š” ๋ฌธ์ œ์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. 4 ๊ฐœ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์นจ์— ๋”ฐ๋ผ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๊ธฐ๊บผ์ด ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•™์Šต ๊ณก์„ ์„ ์ค„์ด๋ ค๋ฉด ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋ถˆ์พŒ๊ฐ์„์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€์ง„ ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„์—์„œ ๋˜๋Š” ๊ทธ ์ดํ›„์—๋„ ํ™”๋ฉด ํŒ๋…๊ธฐ๋ฅผ ๋นจ๋ฆฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐœ๋…์ด ๋„ˆ๋ฌด ๋‚ฏ์„ค ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ƒ‰์ƒ ์ด์™ธ์˜ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ๋ฅผ ํ…Œ์ŠคํŠธ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋ฅผ ์–ธ๊ธ‰ํ•˜๊ฑฐ๋‚˜ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ด๋ฉด ์‹œ๊ฐ„์„ ๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ‰ ๋Œ€๋น„์— ๋Œ€ํ•ด์„œ๋Š” Color Contrast Analyzer๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์ฐพ๊ณ  ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋Š” http://www.webaim.org ๋ฅผ ์ฐธ์กฐ

PC์—์„œ ์ตœ๊ณ ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์™€ ๋ธŒ๋ผ์šฐ์ € ์กฐํ•ฉ์€ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „ ์ธ NVDA์™€ Firefox๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. NVDA๋Š” ์ ‘๊ทผ์„ฑ API์— ๊ฐ€์žฅ ๋งŽ์ด ์˜์กดํ•˜๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์ด๊ณ  Firefox๋Š” ์ ‘๊ทผ์„ฑ API์˜ ๊ฐ€์žฅ ์ˆœ์ˆ˜ํ•œ ๊ตฌํ˜„์„ ๋…ธ์ถœํ•˜๋Š” PC ๋ธŒ๋ผ์šฐ์ €์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ecxplanation์˜ ๋ถ€์กฑ์ž…๋‹ˆ๋‹ค.

NVDA๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์ •ํ•˜๋ ค๋ฉด http://www.nvda-project.org ๋ฅผ ์ฐธ์กฐ

์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‚ค๋ณด๋“œ ๋Œ€ํ™” ์ƒ์ž๋กœ ์ด๋™ํ•˜์—ฌ ๋žฉํ†ฑ ๋ ˆ์ด์•„์›ƒ์„ ์„ค์ • ํ•œ ๋‹ค์Œ ํƒ์ƒ‰ ๋ชจ๋“œ ๋Œ€ํ™” ์ƒ์ž๋กœ ์ด๋™ํ•˜์—ฌ "ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์‚ฌ์šฉ"ํ™•์ธ๋ž€์„ ๋•๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌ ํ•œ ํ›„์—๋Š” ์‹œ๋ ฅ์ด ์ข‹์€ ์‚ฌ๋žŒ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ด์ƒ NVDA์˜ ๋ง์„๋“ค์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ณ  NVDA๋ฅผ ์—ด๊ณ  ๋„๊ตฌ, ์Œ์„ฑ ๋ทฐ์–ด๋ฅผ ์ฐจ๋ก€๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ฐฝ์—์žˆ๋Š” ํ…์ŠคํŠธ์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ทธ ์ฐฝ์„ ์ฃผ์ฐจํ•˜์‹ญ์‹œ์˜ค. ์›ํ•˜๋Š”๋Œ€๋กœ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ • ํ•œ ๋‹ค์Œ ์›น์œผ๋กœ ์ด๋™ํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„ ์œ„์ชฝ ๋ฐ ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ์žฅ ๋ฌธ์„œ๋ฅผ ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•œ ์ค„์”ฉ ์ฝ์Šต๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ทฐ์–ด ์ฐฝ์„์ฃผ์˜ ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ํ…์ŠคํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ทฐ์–ด์˜ ํ…์ŠคํŠธ๋Š” NVDA๊ฐ€ ๋งํ•˜๋Š” ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ์ง€์‹์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํฅ๋ฏธ๋กœ์šธ ๋ฟ์ด์ง€ ๋งŒ ๋„์›€์ด๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์†”์งํžˆ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•ด์•ผํ•˜๋Š”์ง€ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ๋ฐฐ์šด ์ ‘๊ทผ์„ฑ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด๊ฒƒ์€ ์ด๊ธฐ์ ์ธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ €๋Š” FCC๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์ดˆ์˜ ๋งน์ธ์ด๋˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ ์ง€์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋งน์ธ ์ค‘๊ฐœ์ž๋ฅผ์œ„ํ•œ ์ ‘๊ทผ์„ฑ์„ ์ง€์›ํ•˜๊ณ  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์›น ๊ฐœ๋ฐœ์ž๊ฐ€๋˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. , ๋ชจ๋“  ์œ ํ˜•์˜ ์žฅ์• ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์„ ๋•์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ฐ€ ์•Œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋” ๋‚˜์€ ์ง์—…์„ ์–ป๊ฑฐ๋‚˜ ์ง์žฅ ๋ฐ–์—์„œ ๋ˆ์„ ๋ฒŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  61 ๋Œ“๊ธ€

cc @ FreeCodeCamp / ์ค‘์žฌ์ž

์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ์— ๋” ์‰ฝ๊ฒŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๊ณ  ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

๊ตฌํ˜„์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

NVDA ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๋ฆฌ๋“œ ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ :

2017 ๋…„ 8 ์›” 8 ์ผ ์˜คํ›„ 5์‹œ 11 ๋ถ„์— mrugesh mohapatra๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์›น ์‚ฌ์ดํŠธ์˜ ์ ‘๊ทผ์„ฑ์„ ๋†’์ด๊ณ  ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€
์ด๊ฒƒ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„.

๊ตฌํ˜„์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271187374 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4ufBLExQL0QJK2q17hvMavLGwSBwks5rQW0kgaJpZM4LdzaT .

NVDA ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๋ฆฌ๋“œ ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ :

์ด๋Š” ์‚ฌ์šฉ์ค‘์ธ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์˜ ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ด ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋Š” ๋น„ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
HTML contentEditable์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ 
ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ ). ์•ˆํƒ€๊น๊ฒŒ๋„ Google์—์„œ ์ง€์›ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.
์ด; ํŽธ์ง‘๊ธฐ์—์„œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
โ€”

2017 ๋…„ 8 ์›” 8 ์ผ ์˜คํ›„ 5์‹œ 11 ๋ถ„์— mrugesh mohapatra๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์›น ์‚ฌ์ดํŠธ์˜ ์ ‘๊ทผ์„ฑ์„ ๋†’์ด๊ณ  ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€
์ด๊ฒƒ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„.

๊ตฌํ˜„์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

โ€”
์Šค๋ ˆ๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์‹  ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271187374 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4ufBLExQL0QJK2q17hvMavLGwSBwks5rQW0kgaJpZM4LdzaT .

@mjanusauskas ์•ˆ๋…•ํ•˜์„ธ์š” Mathew! ๋ฌธ์ œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ธฐํ•˜๊ธฐ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ธ ๊ฒฝ์šฐ ์ €์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์•ก์„ธ์Šค ํ•  ์ˆ˜์—†๋Š” ํŽธ์ง‘๊ธฐ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 9 ์ผ ์˜ค์ „ 12:49์— mrugesh mohapatra๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

@mjanusauskas https://github.com/mjanusauskas ์•ˆ๋…•ํ•˜์„ธ์š” Mathew! ๋งˆ์Œ
์ด๊ฒƒ์ด ๋ฌธ์ œ ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ธฐํ•˜๊ธฐ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ธ ๊ฒฝ์šฐ ์ €์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271220175 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4iUWcvbQSZedazsn7H3_sOnWCuB7ks5rQdh_gaJpZM4LdzaT .

๊ธ€์Ž„, ์šฐ๋ฆฌ๋Š” ํŽธ์ง‘๊ธฐ๋กœ https://github.com/codemirror/CodeMirror ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, NVDA์˜ ์ €์žฅ์†Œ ์ธ ์˜คํ”ˆ ์†Œ์Šค ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋„ ๊ทธ๋“ค๊ณผ ํ•จ๊ป˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€ ์ฃผ์‹ค ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@raisedadead ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์˜คํ”ˆ ์†Œ์Šค ๋ฆฌ๋” https://github.com/nvaccess/nvda๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @erictleung!

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. CodeMirror์™€ ๊ด€๋ จ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํŠน๋ณ„ํžˆ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‘ ์ €์žฅ์†Œ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ์ด์— ๋Œ€ํ•œ ๋„์›€์„ ๊ตฌํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

/ cc @ FreeCodeCamp / ์ค‘์žฌ์ž

NVDA ์ˆ˜์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณต์œ  ํ•œ ์ด์ „ ์˜๊ฒฌ์€
๋‚˜๋Š” ๊ทธ๋“ค์˜ ์ €์žฅ์†Œ์—์„œ ์—ด์—ˆ๋˜ ๋ฌธ์ œ. ๊ทธ๋“ค์˜ ์ž…์žฅ์€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค
๋น„ํ‘œ์ค€ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์ธํ•ด ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์—์„œ ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š”
์‚ฌ์šฉ ์ค‘์ด๋ฉฐ ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ๋Š” ํŽธ์ง‘๊ธฐ์—์„œ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 9 ์ผ ์˜คํ›„ 12:18์— mrugesh mohapatra๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. CodeMirror์™€ ๊ด€๋ จ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๊ตฌ์ฒด์ ์œผ๋กœ ํŠน๋ณ„ํžˆ. ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์—์„œ ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
repos, ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋„์›€์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

/ cc @ FreeCodeCamp / ์ค‘์žฌ์ž
https://github.com/orgs/FreeCodeCamp/teams/moderators

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271361131 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4oyVgtLfIsZKxB51xxN08OxRhHhXks5rQnoFgaJpZM4LdzaT .

๋ฌธ์ œ ๋ฒˆํ˜ธ, ๋งํฌ ๋“ฑ์œผ๋กœ ์šฐ๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ตฌํ˜„ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๊ธฐ์ˆ ์  ์ธ ์•„์ด๋””์–ด๊ฐ€ ์—†๋‹ค๋ฉด ์—๋””ํ„ฐ์—์„œ ์—๋””ํ„ฐ์˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ˆ˜์ •์„ ์„ค๋“ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ์—†์ด๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ ‘๊ทผ์„ฑ์„ ์ง€์›ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง„ํ–‰ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

NVDA ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋ณด๊ณ  ํ•œ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/nvaccess/nvda/issues/6707

ํ•  ์ˆ˜์žˆ๋Š” ์ผ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•  ์ˆ˜ ์žˆ๊ณ  ์‹ถ๋‹ค
์ ‘๊ทผ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Free Code Camp์— ์ฐธ์—ฌ
ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 9 ์ผ ์˜คํ›„ 12:41์— mrugesh mohapatra๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

๋ฌธ์ œ ๋ฒˆํ˜ธ, ๋งํฌ ๋“ฑ์œผ๋กœ ์šฐ๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ดํ•ดํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
๋ฌด์—‡์„ ๊ตฌํ˜„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๋ช…ํ™•ํ•œ ๊ธฐ์ˆ ์  ์•„์ด๋””์–ด์—†์ด
์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŽธ์ง‘์ž์—์„œ ์„ค๋“ํ•˜๊ธฐ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜์ •์„ ์œ„ํ•ด ํŽธ์ง‘๊ธฐ์˜ ๊ด€๋ฆฌ์ž.

์ฃ„์†กํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์—†์œผ๋ฉด ์ง„ํ–‰ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ ‘๊ทผ์„ฑ์„ ์ง€์›ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271367297 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4rtyeVvew2edXgWaxr1eICnDpdKxks5rQn9wgaJpZM4LdzaT .

์ผ๋ถ€ ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์œผ๋กœ ์ธํ•ด http://bgrins.github.io/codemirror-accessible/
๋ณผ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€, ๋„์›€์ด๋˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ
html ๋ฐ css ๊ณผ์ •๊ณผ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ ๊ฒฝํ—˜
www.w3schools.com ์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๋กœ์„œ ์ƒ๋‹นํžˆ ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 9 ์ผ ์˜คํ›„ 12:55์— Dylan์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

์ผ๋ถ€ ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์œผ๋กœ ์ธํ•ด ๋‹ค์Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
http://bgrins.github.io/codemirror-accessible/
๋ณผ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271371504 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4p-8xX-xTVF0bqGhOkpAinPMDwNaks5rQoKagaJpZM4LdzaT .

@mjanusauskas ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๋งคํŠœ.

์šฐ๋ฆฌ๋Š” ์šฐ์„  ์ˆœ์œ„์™€ ์ตœ์„ ์˜ ๋Šฅ๋ ฅ์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ์•ฝ๊ฐ„ ์ง€์—ฐ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ... ๊ทธ๋™์•ˆ ์œ„ํ‚ค๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค https://forum.freecodecamp.com ์˜ ํฌ๋Ÿผ ๊ธฐ์‚ฌ์™€ ๋น„๋””์˜ค ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ†ตํ•ด ํ•™์Šต์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

/ cc @QuincyLarson

๋ฐฉ๊ธˆ @dhcodes๊ฐ€ ์—ฐ๊ฒฐ๋œ CodeMirror Accessible ๋ฐ๋ชจ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ € ์„ฑ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๋“ค์ด ๊ฑฐ๊ธฐ์—๋กœ๋“œ ํ•œ ~ 10k ์ค„ JavaScript ํŒŒ์ผ๋กœ ์ž‘์—… ํ•  ๋•Œ ์†๋„ ์ €ํ•˜๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ CodeMirror ํ…์ŠคํŠธ ์˜์—ญ์—์„œ ์ƒ์ƒํ•  ์ˆ˜์žˆ๋Š” ๊ฐ€์žฅ ํฐ ํ”„๋กœ์ ํŠธ๋Š” ์•ฝ 1,000 ์ค„์ด ๋  ๊ฒƒ์ด๋ฏ€๋กœ ์†๋„ ์ €ํ•˜๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ฐ์Šคํฌํƒ‘์— ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

CodeMirror Accessible์˜ ์‚ฌ์šฉ์„ ํ† ๊ธ€ํ•˜๋Š” ์„ค์ •์— ๋ฒ„ํŠผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ• ๊นŒ์š”?

CC @BerkeleyTrue @zersiax

์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌผ๊ฑด์ด ์–ด๋–ป๊ฒŒ ์™„์ „ํžˆ ๋งŒ๋“ค์–ด ์งˆ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ฃผ ์ข‹์€ ์˜ˆ
์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://teachaccess.github.io/tutorial/#/3

2017 ๋…„ 1 ์›” 9 ์ผ ์›”์š”์ผ ์˜คํ›„ 1:58, Quincy Larson [email protected]
์ผ๋‹ค :

๋ฐฉ๊ธˆ @dhcodes CodeMirror Accessible ๋ฐ๋ชจ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/dhcodes ๋งํฌ ๋จ. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์€
๋‚ฎ์€ ์„ฑ๋Šฅ, ์ž‘์—… ํ•  ๋•Œ ์†๋„ ์ €ํ•˜๋ฅผ ๋Š๋ผ์ง€ ๋ชปํ–ˆ์ง€๋งŒ
๊ทธ๋“ค์ด ๊ฑฐ๊ธฐ์—๋กœ๋“œ ํ•œ ~ 10k ์ค„ JavaScript ํŒŒ์ผ. ๊ฐ€์žฅ ํฐ
ํ•˜๋‚˜์˜ CodeMirror ํ…์ŠคํŠธ ์˜์—ญ์— ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•  ์ˆ˜์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋Š”
์•„๋งˆ 1,000 ์ค„ ์ •๋„ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์†๋„ ์ €ํ•˜๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ฐ์Šคํฌํƒ‘์— ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •์— ๋ฒ„ํŠผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
CodeMirror Accessible ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

CC @BerkeleyTrue https://github.com/BerkeleyTrue @zersiax
https://github.com/zersiax

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/12431#issuecomment-271390191 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4nMFLf9Ou0z2oNBFLPZdcxZwxMoOks5rQpFPgaJpZM4LdzaT
.

๋‚˜๋Š” ๊ทธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งˆ์Œ์— ๋“ค์–ด ์ž‘๋™ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค ... ๋‚ด๋ถ€์—์„œ contentEditable์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ œ๊ฐ€ ๊ฐ ๋„์ „์— ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์†Œ ์ง€๋ฃจํ•œ ์ž‘์—…์€
CodeMirror ํŽธ์ง‘๊ธฐ์—์„œ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด> NotePad ++์— ๋ถ™์—ฌ ๋„ฃ๊ธฐ>
ํ•„์š”ํ•œ ์ˆ˜์ •> ๋ชจ๋‘ ์„ ํƒ ๋ฐ ๋ณต์‚ฌ> CodeMirror ํŽธ์ง‘๊ธฐ์— ๋ถ™์—ฌ ๋„ฃ๊ธฐ>
์ œ์ถœ.
์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ถ„๋ช…ํžˆ ๋งค์šฐ ๊ฐ€๋‚œํ•˜๊ณ  ๋น„ํšจ์œจ์  ์ธ ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 22 ์ผ ์ผ์š”์ผ ์˜คํ›„ 4:19, Florian Beijers [email protected]
์ผ๋‹ค :

๋‚˜๋Š” ๊ทธ ์ž์›์„ ์ข‹์•„ํ•œ๋‹ค. ๊ทธ๊ฒƒ์€ ์ž‘๋™ํ•˜๋Š” ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
๋‚ด๋ถ€์—์„œ contentEditable?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-274364439 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4hHGQh0qVNCHAFDmlUzwq8u8DPIPks5rU9X5gaJpZM4LdzaT
.

HTML, CSS๋ฅผ ์™„์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์–ธ๊ธ‰ ๋œ ์ง€๋ฃจํ•œ ์ž‘์—…์„ ์‚ฌ์šฉํ•œ ํ›„
๊ทธ๋ฆฌ๊ณ  Bootstrap ๊ณผ์ œ๋Š” ๋‹ค์Œ ๋ฒˆ์—
๊ธฐ๋ณธ ๊ณต๋ฌผ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ๋Š” CodePen์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

CodePen๊ณผ ์œ ์‚ฌํ•œ ์ฃผ์š” ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
ํŽธ์ง‘์ž. ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋งค์šฐ ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 2 ์›” 2 ์ผ ์˜คํ›„ 4:19์— Florian Beijers๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

๋‚˜๋Š” ๊ทธ ์ž์›์„ ์ข‹์•„ํ•œ๋‹ค. ๊ทธ๊ฒƒ์€ ์ž‘๋™ํ•˜๋Š” ์˜ˆ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
๋‚ด๋ถ€์—์„œ contentEditable?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-274364439 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4hHGQh0qVNCHAFDmlUzwq8u8DPIPks5rU9X5gaJpZM4LdzaT .

@mjanusauskas ํ†ตํ•ฉ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์™€ ๋น ๋ฅธ ๋ Œ๋”๋ง์„ ์œ„ํ•ด https://pages.github.com/ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค

๋„์›€์„ ์›ํ•˜๋Š” ๊ธฐ์—ฌ์ž๋ฅผ์œ„ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ์€์ด ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜์žˆ๋Š” ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค. http://bgrins.github.io/codemirror-accessible/

๋‚˜๋Š” ์ด๊ฒƒ์„ ์กฐ๊ธˆ ์กฐ์‚ฌํ–ˆ๋‹ค. TeachAccess๊ฐ€ exerslide์˜ ํŽธ์ง‘๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ๋‚ด์šฉ์„ ํ…์ŠคํŠธ ์˜์—ญ์— ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

# 12828์—์„œ ์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ๋งŒ๋‚œ ๋‹ค๋ฅธ ๊ฒƒ์€ CodeMirror์˜ inputStyle ์˜ต์…˜ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—๋””ํ„ฐ๊ฐ€ contentEditable์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
contentEditable์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ง€์› ์ด ๋ฌธ์ œ๊ฐ€๋˜์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊ทธ๋“ค์˜ ๋‹ด๋ก ์—์„œ์ด ๋Œ“๊ธ€์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทธ๊ฒƒ์ด ๋ชจ๋ฐ”์ผ์—์„œ ๊ธฐ๋ณธ๊ฐ’์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด๋„ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค (๊ทธ๋“ค์€ ์ง€๊ธˆ๊นŒ์ง€ 2 ๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋‹ค).
๋น ๋ฅธ ํ…Œ์ŠคํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ํ‘œ์‹œ์— ๋”ฐ๋ผ ์ปค์„œ์˜ ์ƒ‰์ƒ์ด ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ „๋ฌธ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๋Š” ์•„๋‹ˆ์ง€๋งŒ NVDA์—์„œ ์ž˜ ์ž‘๋™ํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PR๋กœ ์ œ์ถœํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@mjanusauskas @zersiax ๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•  ๊ฒƒ์— ๋Œ€ํ•œ ํŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? QA์— ๋„์›€์„ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ๋‚˜๋Š” ์ด์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ์›ํ•˜๋Š” ๋งŽ์€ ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜จ๋ผ์ธ Orion IDE๋ฅผ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์˜ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์˜์‹ฌํ•œ๋‹ค

@QuincyLarson ์˜ˆ, ์‹คํ–‰์ค‘์ธ ์ƒŒ๋“œ ๋ฐ•์Šค ๋งํฌ๋ฅผ ๋ณด๋‚ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋น™๋น™ ๋Œ๋ฆด ๊ฒƒ์ด๋‹ค.

@zersiax ์•ˆ๋…•ํ•˜์„ธ์š”! freeCodeCamp์˜ ์ƒŒ๋“œ ๋ฐ•์Šค ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Quincy๊ฐ€ ๋‹น์‹ ์„ ์œ„ํ•ด ํ•˜๋‚˜๋ฅผ ๊ตฌํ•ด์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด๋Š ์ชฝ์ด๋“  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :) ๋…ธ๋“œ ํ™˜๊ฒฝ์ด ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
๊ทธ๋ž˜๋„ ๋จผ์ง€ ์ œ๊ฑฐ :)

@zersiax Local์€ ์•„๋งˆ๋„ ๋น ๋ฅธ ์†”๋ฃจ์…˜ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ‘ ๋‹ค์Œ์€ ์„ค์น˜ ๊ฐ€์ด๋“œ์˜ ๋‹จ์ถ• ๋ฒ„์ „์ž…๋‹ˆ๋‹ค (์ „์ฒด ๊ฐ€์ด๋“œ๋Š” CONTRIBUTING.md์ž…๋‹ˆ๋‹ค )

  1. Node v6 ๋ฐ MongoDB v3๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
  2. freeCodeCamp ๋ณต์ œ
  3. ์ด ๋ชจ๋“  ๊ณผ์ •์—์„œ MongoDB๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  4. freeCodeCamp cl ๋‚ด์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
npm install
npm install -g gulp
cp sample.env .env
npm run only-once
gulp
  1. ์ด์ œ ๋กœ์ปฌ ์ธ์Šคํ„ด์Šค๊ฐ€ localhost:3000 ์—์„œ ์‹คํ–‰ ์ค‘์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‚ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๋ ค๋ฉด ๊ฟ€๊บฝ ๊ฟ€๊บฝ ๋งˆ์‹œ๊ณ  ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.
git remote add systimotic https://github.com/systimotic/FreeCodeCamp.git
git fetch systimotic
git checkout --track systimotic/fix/accessible-editor
  1. gulp๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด localhost : 3000 ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Oof, ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋ณต์žกํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜๋„ ๋‚ด๊ฐ€ ์—‰๋ง์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๐Ÿ˜… ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์ €์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

์ •๋ณด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. GitHub ํŽ˜์ด์ง€๋ฅผ
๊ฐ€๋Šฅํ•œ ๋Œ€์•ˆ.

2017 ๋…„ 1 ์›” 24 ์ผ ์˜คํ›„ 11:12์— Eric Leung์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

@mjanusauskas https://github.com/mjanusauskas ์šฐ๋ฆฌ๋Š” Codepen์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
ํ†ตํ•ฉ ๋œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ๋ฐ ๋น ๋ฅธ ๋ Œ๋”๋ง. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค
Codepen์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ
submit์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” URL์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค
ํ”„๋กœ์ ํŠธ๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ์œ„ํ•œ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€์•ˆ์€
GitHub ํŽ˜์ด์ง€ https://pages.github.com/์„ ์‚ฌ์šฉ

๋„์›€์„ ์›ํ•˜๋Š” ๊ธฐ์—ฌ์ž๋ฅผ์œ„ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. http://bgrins.github.io/codemirror-accessible/

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-275020850 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4lJ8-omlWG3Xbt5soRKVVFYaKYMJks5rVtm1gaJpZM4LdzaT .

์˜ˆ, ํ…Œ์ŠคํŠธ ๋ฐ / QA๋ฅผ ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 1 ์›” 25 ์ผ ์˜ค์ „ 6์‹œ 39 ๋ถ„์— Timo๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.
>

๋‚˜๋Š” ์ด๊ฒƒ์„ ์กฐ๊ธˆ ์กฐ์‚ฌํ–ˆ๋‹ค. TeachAccess๊ฐ€
exerslide์˜ ํŽธ์ง‘๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ
https://github.com/facebookincubator/exerslide/blob/master/packages/exerslide/components/Editor.js
๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ
ํ…์ŠคํŠธ ์˜์—ญ.

์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ๋งŒ๋‚œ ๋‹ค๋ฅธ ๊ฒƒ # 12828
https://github.com/freeCodeCamp/freeCodeCamp/issues/12828 ์€
CodeMirror์˜ inputStyle ์˜ต์…˜
https://codemirror.net/doc/manual.html#option_inputStyle . ์ด
contentEditable์„ ์‚ฌ์šฉํ•˜๋„๋ก ํŽธ์ง‘๊ธฐ๋ฅผ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
contentEditable์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ง€์›์„ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
http://caniuse.com/#search=contentEd ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์ง€๋งŒ
๊ทธ๋“ค์˜ ๋‹ด๋ก ์—์„œ์ด ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?
https://discuss.codemirror.net/t/inputstyle-contenteditable-we-may-hope-for-browser-spell-checking/608/2 ,
์ด์ „ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทธ๊ฒŒ ๋‹ค๋ผ๊ณ  ๋งํ•˜์ง€
๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด๋ฉฐ ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ณณ์—. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ 2 ๋…„).
๋น ๋ฅธ ํ…Œ์ŠคํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€
๊ตฌ๋ฌธ ๊ฐ•์กฐ ํ‘œ์‹œ์— ๋”ฐ๋ผ ์ปค์„œ์˜ ์ƒ‰์ƒ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ „๋ฌธ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์‚ฌ์šฉ์ž๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€
NVDA์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

PR๋กœ ์ œ์ถœํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@mjanusauskas https://github.com/mjanusauskas @zersiax
https://github.com/zersiax ๋‚ด๊ฐ€ํ•ด์•ผ ํ•  ์ผ์— ๋Œ€ํ•œ ํŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
ํ…Œ์ŠคํŠธ? QA์— ๋„์›€์„ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-275097352 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4oqMSgwyJUBVxfaYDkwWaP23NDqMks5rV0JzgaJpZM4LdzaT .

+1. ๋‹น๋ถ„๊ฐ„์ด ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ํ™”๋ฉด ํŒ๋…๊ธฐ ๋งŒ ์ฝ์„ ์ˆ˜์žˆ๋Š” ์ˆจ๊ฒจ์ง„ ์ง€์นจ (๋‹ค๋ฅธ ํŽธ์ง‘์ž์—๊ฒŒ ๋ณต์‚ฌ, ํŽธ์ง‘, ๋ณต์‚ฌ)์„ ๋„ฃ์œผ๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด๊นŒ์š”? .sr ์ „์šฉ ํด๋ž˜์Šค๋ฅผ
ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฒ”์œ„์ด์ง€๋งŒ ๋„ˆ๋ฌด ์˜ค๋ž˜๋‘๋ฉด
๋ˆ„๊ตฐ๊ฐ€ ์–ด๋”˜๊ฐ€์— ๊ทธ๊ฒƒ์„ ์žŠ์–ด ๋ฒ„๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ์•‰์•„์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค
์—ฌ๋Ÿฌ๋ถ„์ด ์‹ค์ œ๋กœ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์— :)

์ตœ๊ทผ์— CodePen.com๊ณผ EdX.org์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

EdX๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ๊ฐ–์ถ”๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์— ๊ทธ๋“ค์˜ ์˜๊ฒฌ :

CodeMirror๋ผ๋Š” ์˜คํ”ˆ ์†Œ์Šค ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
(https://codemirror.net/). ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ˆ˜์ •ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.
edX ํ”Œ๋žซํผ ๋‚ด์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ˆ˜์ • ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋Š”
์ผ๋ถ€ ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
CodeMirror๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์—์„œ์˜ ๊ฒฝํ—˜. ์šฐ๋ฆฌ๊ฐ€ํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
edX์— ๋งž๊ฒŒ ์‚ฌ์šฉ์ž ์ •์˜ํ–ˆ์ง€๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์—…์ŠคํŠธ๋ฆผ์œผ๋กœ ํ‘ธ์‹œ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ CodeMirror๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋“ค์˜ github ์ €์žฅ์†Œ ์ด์Šˆ ํŠธ๋ž˜์ปค์—. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๋˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์ง€์ • ๋ณ€๊ฒฝ
CodeMirror ํฌํฌ์—๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์™€ ํ‚ค๋ณด๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
TAB ์ˆœ์„œ๋กœ ํŽธ์ง‘๊ธฐ ์•ž์— ์˜ค๋Š” ์‚ฌ์šฉ์ž ๋ณ„ ์ง€์นจ. ๊ทธ๋งŒํผ
์‚ฌ์šฉ์ž๋Š” ESC ํ‚ค๋ฅผ ๋‘ ๋ฒˆ ๋ˆ„๋ฅธ ๋‹ค์Œ TAB์„ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ์Œ์„ ์•Œ์•„์•ผํ•ฉ๋‹ˆ๋‹ค.
ํŽธ์ง‘๊ธฐ ๋ฐ–์œผ๋กœ ์ดˆ์ ์„ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฝ”๋“œ์—์„œ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์‚ฌ์šฉ์ž๊ฐ€ TAB ์‹œํ€€์Šค๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
TAB ํ‚ค๊ฐ€ํ•˜๋Š” ์ผ์ธ ํ˜„์žฌ ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค๋ฅผ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ.

2017 ๋…„ 1 ์›” 31 ์ผ ์˜คํ›„ 4:01์— Florian Beijers๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด๊นŒ์š”? .sr ์ „์šฉ ํด๋ž˜์Šค๋ฅผ
ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฒ”์œ„์ด์ง€๋งŒ ๋„ˆ๋ฌด ์˜ค๋ž˜๋‘๋ฉด
๋ˆ„๊ตฐ๊ฐ€ ์–ด๋”˜๊ฐ€์— ๊ทธ๊ฒƒ์„ ์žŠ์–ด ๋ฒ„๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ์•‰์•„์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค
์—ฌ๋Ÿฌ๋ถ„์ด ์‹ค์ œ๋กœ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์— :)

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-276506570 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4h-s2_aSFUDNSIRXnc8v7bmlNqhnks5rX69UgaJpZM4LdzaT .

๋‹ค์Œ์€์ด ์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ž‘๋™ ์†”๋ฃจ์…˜์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค.

https://github.com/jsbin/jsbin/issues/936

2017 ๋…„ 1 ์›” 31 ์ผ ์˜คํ›„ 4:01์— Florian Beijers๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด๊นŒ์š”? .sr ์ „์šฉ ํด๋ž˜์Šค๋ฅผ
ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฒ”์œ„์ด์ง€๋งŒ ๋„ˆ๋ฌด ์˜ค๋ž˜๋‘๋ฉด
๋ˆ„๊ตฐ๊ฐ€ ์–ด๋”˜๊ฐ€์— ๊ทธ๊ฒƒ์„ ์žŠ์–ด ๋ฒ„๋ฆฌ๊ณ  ๊ทธ๋ƒฅ ์•‰์•„์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค
์—ฌ๋Ÿฌ๋ถ„์ด ์‹ค์ œ๋กœ ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์— :)

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-276506570 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APDp4h-s2_aSFUDNSIRXnc8v7bmlNqhnks5rX69UgaJpZM4LdzaT .

์•ˆ๋…•ํ•˜์„ธ์š”

_FastHub๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Samsung SM-A520F์—์„œ ๋ณด๋ƒ„ _

_FastHub๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Samsung SM-A520F์—์„œ ๋ณด๋ƒ„ _

์•ˆ๋…•ํ•˜์„ธ์š”,
์ด์ œ ์‚ฌ์ดํŠธ๋ฅผ ๋กœ์ปฌ๋กœ ์„ค์ • ํ–ˆ์œผ๋ฏ€๋กœ์ด ์ง€์นจ์„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋ฅผ ๋‚ด ์ €์žฅ์†Œ์™€ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋Š” ๋ถ€๋ถ„์„ ๋”ฐ๋ผ์•ผํ•œ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ฌ๋ฐ”๋ฅธ์ง€? ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Œ๋ฆด ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋ถˆ์•ˆํ•ฉ๋‹ˆ๋‹ค. :)

์ด๊ฒƒ์ด ์‹ค์ œ ์ฃผ์š” ๋ฌธ์ œ์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. 4 ๊ฐœ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง€์นจ์— ๋”ฐ๋ผ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ๊ธฐ๊บผ์ด ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด์žˆ๋Š” ๊ฒฝ์šฐ ํ•™์Šต ๊ณก์„ ์„ ์ค„์ด๋ ค๋ฉด ์•„๋ž˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋ถˆ์พŒ๊ฐ์„์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€์ง„ ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋„์—์„œ ๋˜๋Š” ๊ทธ ์ดํ›„์—๋„ ํ™”๋ฉด ํŒ๋…๊ธฐ๋ฅผ ๋นจ๋ฆฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐœ๋…์ด ๋„ˆ๋ฌด ๋‚ฏ์„ค ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ƒ‰์ƒ ์ด์™ธ์˜ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ ‘๊ทผ์„ฑ ๋ฌธ์ œ๋ฅผ ํ…Œ์ŠคํŠธ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋ฅผ ์–ธ๊ธ‰ํ•˜๊ฑฐ๋‚˜ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ด๋ฉด ์‹œ๊ฐ„์„ ๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ‰ ๋Œ€๋น„์— ๋Œ€ํ•ด์„œ๋Š” Color Contrast Analyzer๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์ฐพ๊ณ  ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ๋Š” http://www.webaim.org ๋ฅผ ์ฐธ์กฐ

PC์—์„œ ์ตœ๊ณ ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์™€ ๋ธŒ๋ผ์šฐ์ € ์กฐํ•ฉ์€ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „ ์ธ NVDA์™€ Firefox๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. NVDA๋Š” ์ ‘๊ทผ์„ฑ API์— ๊ฐ€์žฅ ๋งŽ์ด ์˜์กดํ•˜๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์ด๊ณ  Firefox๋Š” ์ ‘๊ทผ์„ฑ API์˜ ๊ฐ€์žฅ ์ˆœ์ˆ˜ํ•œ ๊ตฌํ˜„์„ ๋…ธ์ถœํ•˜๋Š” PC ๋ธŒ๋ผ์šฐ์ €์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ecxplanation์˜ ๋ถ€์กฑ์ž…๋‹ˆ๋‹ค.

NVDA๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์ •ํ•˜๋ ค๋ฉด http://www.nvda-project.org ๋ฅผ ์ฐธ์กฐ

์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‚ค๋ณด๋“œ ๋Œ€ํ™” ์ƒ์ž๋กœ ์ด๋™ํ•˜์—ฌ ๋žฉํ†ฑ ๋ ˆ์ด์•„์›ƒ์„ ์„ค์ • ํ•œ ๋‹ค์Œ ํƒ์ƒ‰ ๋ชจ๋“œ ๋Œ€ํ™” ์ƒ์ž๋กœ ์ด๋™ํ•˜์—ฌ "ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์‚ฌ์šฉ"ํ™•์ธ๋ž€์„ ๋•๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌ ํ•œ ํ›„์—๋Š” ์‹œ๋ ฅ์ด ์ข‹์€ ์‚ฌ๋žŒ์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ด์ƒ NVDA์˜ ๋ง์„๋“ค์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ณ  NVDA๋ฅผ ์—ด๊ณ  ๋„๊ตฌ, ์Œ์„ฑ ๋ทฐ์–ด๋ฅผ ์ฐจ๋ก€๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ฐฝ์—์žˆ๋Š” ํ…์ŠคํŠธ์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ทธ ์ฐฝ์„ ์ฃผ์ฐจํ•˜์‹ญ์‹œ์˜ค. ์›ํ•˜๋Š”๋Œ€๋กœ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์กฐ์ • ํ•œ ๋‹ค์Œ ์›น์œผ๋กœ ์ด๋™ํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„ ์œ„์ชฝ ๋ฐ ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ์žฅ ๋ฌธ์„œ๋ฅผ ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ•œ ์ค„์”ฉ ์ฝ์Šต๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ทฐ์–ด ์ฐฝ์„์ฃผ์˜ ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ํ…์ŠคํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ ๋ทฐ์–ด์˜ ํ…์ŠคํŠธ๋Š” NVDA๊ฐ€ ๋งํ•˜๋Š” ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ์ง€์‹์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํฅ๋ฏธ๋กœ์šธ ๋ฟ์ด์ง€ ๋งŒ ๋„์›€์ด๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์†”์งํžˆ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•ด์•ผํ•˜๋Š”์ง€ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ๋ฐฐ์šด ์ ‘๊ทผ์„ฑ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ…Œ์ŠคํŠธ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ด๊ฒƒ์€ ์ด๊ธฐ์ ์ธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ €๋Š” FCC๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์ดˆ์˜ ๋งน์ธ์ด๋˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ ์ง€์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋งน์ธ ์ค‘๊ฐœ์ž๋ฅผ์œ„ํ•œ ์ ‘๊ทผ์„ฑ์„ ์ง€์›ํ•˜๊ณ  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์›น ๊ฐœ๋ฐœ์ž๊ฐ€๋˜๋Š” ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. , ๋ชจ๋“  ์œ ํ˜•์˜ ์žฅ์• ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์„ ๋•์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ฐ€ ์•Œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋” ๋‚˜์€ ์ง์—…์„ ์–ป๊ฑฐ๋‚˜ ์ง์žฅ ๋ฐ–์—์„œ ๋ˆ์„ ๋ฒŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@jhomme ์‚ฌ์šฉํ•˜๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์— ๋Œ€ํ•ด ์ž์„ธํžˆ

FireFox์—์„œ Fangs๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ URL์„ ๋ฐฉ๋ฌธ ํ•  ๋•Œ : https://www.freecodecamp.org/challenges/inform-with-the-paragraph-element

ํ™”๋ฉด ํŒ๋…๊ธฐ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€์—๋Š” ํ”„๋ ˆ์ž„ 1 ๊ฐœ, ์ œ๋ชฉ 4 ๊ฐœ ๋ฐ ๋งํฌ 25 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ ์š”์†Œ๋กœ ์•Œ๋ฆผ ์„ธ๋กœ ๋ง‰๋Œ€ freeCodeCamp ๋Œ€์‹œ Internet ExplorerLinkGraphicfreeCodeCamp์—์„œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋”ฉ ๋ฐฐ์šฐ๊ธฐ logo7 ๊ฐœ ํ•ญ๋ชฉ ๋ชฉ๋ก bulletLink MapbulletbulletLink ForumbulletLink ContributebulletLink AboutbulletLink DonatebulletLink Sign inList endHeading level 4 Inform with the Paragraph Element p ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ์˜ ์ผ๋ฐ˜ ๋Œ€์‹œ ํฌ๊ธฐ ๋‹จ๋ฝ ํ…์ŠคํŠธ์— ์„ ํ˜ธ๋˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. P๋Š” ์ธ์šฉ ๋‹จ๋ฝ ์ธ์šฉ์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์ด ์ฝœ๋ก  ๋œ p ๋” ํฐ I 'm ap ํƒœ๊ทธ์™€ ๊ฐ™์€ ap ์š”์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋œ ์Šฌ๋ž˜์‹œ p ๋” ํฌ๊ฒŒ htwo ์š”์†Œ ์•„๋ž˜์— ap ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ํ…์ŠคํŠธ ์ธ์šฉ๋ฌธ Hello Paragraph quote๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์™ผ์ชฝ ๊ด„ํ˜ธ ctrl + ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ ์ž…๋ ฅ ์ฝ”๋“œ ์žฌ์„ค์ • Link ํžŒํŠธ ๋ฐ›๊ธฐ forumLink์—์„œ ๋„์›€ ์š”์ฒญ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๊ทธ์ธ ap ์š”์†Œ ๋งŒ๋“ค๊ธฐ. p ์š”์†Œ์—๋Š” ํ…์ŠคํŠธ quote Hello Paragraph quote๊ฐ€ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. p ์š”์†Œ์— ๋‹ซ๋Š” ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. EditEdit four 1 2 ๋œ ์—ฐ๋งˆ ๋จ ๋” ํฌ๊ฒŒ Hello World ๋œ ์Šฌ๋ž˜์‹œ hone ๋” ํฌ๊ฒŒ 3 ๋œ htwo ๋” ํฌ๊ฒŒ CatPhotoApp ๋œ ์Šฌ๋ž˜์‹œ htwo ๋” ํฌ๊ฒŒ 4 ์ œ๋ชฉ ์ˆ˜์ค€ 1 Hello WorldHeading ์ˆ˜์ค€ 2 CatPhotoAppLinkLinkLink

์ด ๋‚ด์šฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ํ™”๋ฉด ํŒ๋…๊ธฐ๊ฐ€ ๋ Œ๋”๋ง ํ•œ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

1 2 ๋œ ์—ฐ๋งˆ ๋จ ๋” ํฌ๊ฒŒ Hello World ๋œ ์Šฌ๋ž˜์‹œ ์ˆซ๋Œ ๋” ํฌ๊ฒŒ 3 ๋œ htwo ๋” ํฌ๊ฒŒ CatPhotoApp ๋œ ์Šฌ๋ž˜์‹œ htwo ๋” ํฌ๊ฒŒ 4

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ Fangs ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 4 ๊ฐœ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๋ชจ๋‘์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ์ค‘ ์ผ๋ถ€์—์„œ๋งŒ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‚˜๋Š” freeCodeCamp๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๊ธธ์„ ๊ฐˆ ์ฒซ ๋ฒˆ์งธ ์‹œ๊ฐ ์žฅ์• ์ธ์ด ๋˜๋ ค๋Š” ๋‹น์‹ ์˜ ์•ผ๋ง์— ๋ฐ•์ˆ˜๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด ๊ทธ ๋ชฉํ‘œ๋ฅผ ์‹คํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…• ํ€ธ์‹œ,

PC์˜ JAWS ๋ฐ NVDA, Mac์˜ ์Œ์„ฑ ํ•ด์„ค์—์„œ ์ด๊ฒƒ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. IOS์˜ VoiceOver์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฅธ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด๋ ˆ์ดํ„ฐ์™€ TalkbBack์„ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 8 ์›” 23 ์ผ ์˜ค์ „ 12์‹œ 1 ๋ถ„์— Quincy Larson [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@jhomme ์‚ฌ์šฉํ•˜๋Š” ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์— ๋Œ€ํ•ด ์ž์„ธํžˆ

FireFox์—์„œ Fangs๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ URL์„ ๋ฐฉ๋ฌธ ํ•  ๋•Œ : https://www.freecodecamp.org/challenges/inform-with-the-paragraph-element

ํ™”๋ฉด ํŒ๋…๊ธฐ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€์—๋Š” ํ”„๋ ˆ์ž„ 1 ๊ฐœ, ์ œ๋ชฉ 4 ๊ฐœ ๋ฐ ๋งํฌ 25 ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๋ฝ ์š”์†Œ๋กœ ์•Œ๋ฆผ ์„ธ๋กœ ๋ง‰๋Œ€ freeCodeCamp ๋Œ€์‹œ Internet ExplorerLinkGraphicfreeCodeCamp์—์„œ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋”ฉ ๋ฐฐ์šฐ๊ธฐ logo7 ๊ฐœ ํ•ญ๋ชฉ ๋ชฉ๋ก bulletLink MapbulletbulletLink ForumbulletLink ContributebulletLink AboutbulletLink DonatebulletLink Sign inList endHeading level 4 Inform with the Paragraph Element p ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ์˜ ์ผ๋ฐ˜ ๋Œ€์‹œ ํฌ๊ธฐ ๋‹จ๋ฝ ํ…์ŠคํŠธ์— ์„ ํ˜ธ๋˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค. P๋Š” ์ธ์šฉ ๋‹จ๋ฝ ์ธ์šฉ์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์ด ์ฝœ๋ก  ๋œ p ๋” ํฐ I 'm ap ํƒœ๊ทธ์™€ ๊ฐ™์€ ap ์š”์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋œ ์Šฌ๋ž˜์‹œ p ๋” ํฌ๊ฒŒ htwo ์š”์†Œ ์•„๋ž˜์— ap ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  ํ…์ŠคํŠธ ์ธ์šฉ๋ฌธ Hello Paragraph quote๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์™ผ์ชฝ ๊ด„ํ˜ธ ctrl + ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ ์ž…๋ ฅ ์ฝ”๋“œ ์žฌ์„ค์ • Link ํžŒํŠธ ๋ฐ›๊ธฐ forumLink์—์„œ ๋„์›€ ์š”์ฒญ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๊ทธ์ธ ap ์š”์†Œ ๋งŒ๋“ค๊ธฐ. p ์š”์†Œ์—๋Š” ํ…์ŠคํŠธ quote Hello Paragraph quote๊ฐ€ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. p ์š”์†Œ์— ๋‹ซ๋Š” ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. EditEdit four 1 2 ๋œ ์—ฐ๋งˆ ๋จ ๋” ํฌ๊ฒŒ Hello World ๋œ ์Šฌ๋ž˜์‹œ hone ๋” ํฌ๊ฒŒ 3 ๋œ htwo ๋” ํฌ๊ฒŒ CatPhotoApp ๋œ ์Šฌ๋ž˜์‹œ htwo ๋” ํฌ๊ฒŒ 4 ์ œ๋ชฉ ์ˆ˜์ค€ 1 Hello WorldHeading ์ˆ˜์ค€ 2 CatPhotoAppLinkLinkLink

์ด ๋‚ด์šฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ํ™”๋ฉด ํŒ๋…๊ธฐ๊ฐ€ ๋ Œ๋”๋ง ํ•œ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

1 2 ๋œ ์—ฐ๋งˆ ๋จ ๋” ํฌ๊ฒŒ Hello World ๋œ ์Šฌ๋ž˜์‹œ ์ˆซ๋Œ ๋” ํฌ๊ฒŒ 3 ๋œ htwo ๋” ํฌ๊ฒŒ CatPhotoApp ๋œ ์Šฌ๋ž˜์‹œ htwo ๋” ํฌ๊ฒŒ 4

๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ Fangs ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 4 ๊ฐœ์˜ ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ๋ชจ๋‘์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ์ค‘ ์ผ๋ถ€์—์„œ๋งŒ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‚˜๋Š” freeCodeCamp๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๊ธธ์„ ๊ฐˆ ์ฒซ ๋ฒˆ์งธ ์‹œ๊ฐ ์žฅ์• ์ธ์ด ๋˜๋ ค๋Š” ๋‹น์‹ ์˜ ์•ผ๋ง์— ๋ฐ•์ˆ˜๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด ๊ทธ ๋ชฉํ‘œ๋ฅผ ์‹คํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

@jhomme ์–ด๋–ค ์ด์œ ๋กœ ๋‹น์‹ ์ด ๋งŒ๋‚˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์žฅ๊ต๊ฐ€ ๋ญ๊ฐ€ ๋ฌธ์ œ ์•ผ?

์•ˆ๋…•ํ•˜์„ธ์š” Florian,
๋‹ค์–‘ํ•œ ํ™”๋ฉด ๋ฆฌ๋”๊ฐ€ ํƒ์ƒ‰์ด๋‚˜ ์ž…๋ ฅ์„ ์‹œ๋„ ํ•  ๋•Œ ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‚ฌ์ดํŠธ์˜ ํŽธ์ง‘๊ธฐ์—์„œ. ๊ทธ๋“ค์€ ๋‹จ์ง€ ๊ณต๋ฐฑ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋งํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํ…์ŠคํŠธ๋ฅผ ์„ ํƒํ•  ๋•Œ.

์ง

8/23/17์— Florian Beijers [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@jhomme ์–ด๋–ค ์ด์œ ์—์„œ์ธ์ง€ ์„ค๋ช…ํ•˜๋Š” ์ฃผ์„์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ๋งŒ๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ต๊ฐ€ ๋ญ๊ฐ€ ๋ฌธ์ œ ์•ผ?

-
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment -324309958

-

์ง ์˜ด๋ฏ€
http://www.jimhommewebdev.com
ํŠธ์œ„ํ„ฐ : @jimhomme
ํŽ˜์ด์Šค ๋ถ : http://www.facebook.com/jimhomme
๋งํฌ๋“œ ์ธ : https://www.linkedin.com/in/jimhomme

Ahh yup, ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด CodeMirror์— ์•ก์„ธ์Šค ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ NotePad ++ ๋˜๋Š” EdSharp์™€ ๊ฐ™์€ ํŽธ์ง‘๊ธฐ์— ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ ๋„ฃ์€ ๋‹ค์Œ ํŽธ์ง‘ ํ•œ ๋‹ค์Œ fcc ํŽธ์ง‘๊ธฐ์— ๋‹ค์‹œ ๋ถ™์—ฌ ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๋ฃจํ•˜์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. :)

์™„์ „ํžˆ ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค HTML ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ๋ฐฉ๊ธˆ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ์˜ ๊ฒƒ์„ ์ด๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? https://pode.herokuapp.com/ CodePen ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ CodePen์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์กฐ ๊ธฐ์ˆ  ์‚ฌ์šฉ์ž๊ฐ€์ด ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋Œ€์ฒด ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”,
์•„๋ž˜ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๊ทธ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. CodePen์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค. ๊ฑด์„ค์ ์ธ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๋” ๋‚˜์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://blog.codepen.io/2016/07/14/blind-accessibility-testers-society-guide-codepen/

2017 ๋…„ 12 ์›” 27 ์ผ ์˜คํ›„ 5์‹œ 17 ๋ถ„์— inscriptioelectronicaaustralia [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์™„์ „ํžˆ ์•ก์„ธ์Šค ํ•  ์ˆ˜์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค HTML ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ๋ฐฉ๊ธˆ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ์˜ ๊ฒƒ์„ ์ด๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? https://pode.herokuapp.com/ CodePen ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ CodePen์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์กฐ ๊ธฐ์ˆ  ์‚ฌ์šฉ์ž๊ฐ€์ด ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋Œ€์ฒด ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.

@zersiax ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด CodeMirror์˜ ์ ‘๊ทผ์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ผ๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๋‹ค์‹œ ํ•œ

@inscriptioelectronicaaustralia ๊ณง freeCodeCamp์—์„œ ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•์„ ์ง€์›ํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ CodePen์˜ ์ƒ๋Œ€์ ์œผ๋กœ ์•ก์„ธ์Šค ํ•  ์ˆ˜์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ทธ๋‹ค์ง€ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž ์žฌ์ ์œผ๋กœ ๊ธฐ์—ฌํ•  ์ˆ˜์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธ CodeMirror๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

Quincy, ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ณง Free Code Camp์—์„œ ๊ตฌ์ถ• ๋  ์ˆ˜์žˆ๊ฒŒ๋˜์–ด ๋‹คํ–‰์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ ๋ฏธ๋Ÿฌ GitHub ์Šค๋ ˆ๋“œ๋ฅผ ๋ฐฉ๊ธˆ ์‚ดํŽด ๋ณด์•˜๊ณ , ๊ทธ๋“ค์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ์ด ์ž‘์—…์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋งŽ์€ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Code Mirror๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์›น ์‚ฌ์ดํŠธ๋„ ์œˆ-์œˆ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

๊ฐ€์„ค ์ ์œผ๋กœ ์ƒํ™ฉ์„ ์‚ดํŽด๋ณด๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ Pode ๋„๊ตฌ์˜ ๋ˆ„๋ฝ ๋œ ๊ธฐ๋Šฅ์ด Code Mirror์˜ ๋Œ€์ฒด๋ฌผ๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ฒฝ์šฐ Free Code Camp์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”,
์ด๊ฒƒ์„ ์กฐ์‚ฌํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ์‹ค์ œ๋กœ JavaScript๋ฅผ ์™„์„ฑํ•˜๋Š”์ชฝ์œผ๋กœ ๋‚˜์•„๊ฐ€๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ๋žŒ๋“ค, ํŠนํžˆ FreeCodeCamp๋ฅผ ๋•๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ง

๋ณด๋‚ธ ์‚ฌ๋žŒ : inscriptioelectronicaaustralia [mailto : [email protected]]
์ „์†ก : 2017 ๋…„ 12 ์›” 28 ์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 2:08
๋ฐ›๋Š” ์‚ฌ๋žŒ : freeCodeCamp / freeCodeCamp [email protected]
์ฐธ์กฐ : Jim Homme [email protected] ; [email protected]
์ œ๋ชฉ : Re : [freeCodeCamp / freeCodeCamp] ํŽธ์ง‘๊ธฐ์˜ ๋‚ด์šฉ์„ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ ๊ฒ€ํ†  ํ•  ์ˆ˜ ์—†์Œ (# 12431)

Quincy, ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ณง Free Code Camp์—์„œ ๊ตฌ์ถ• ๋  ์ˆ˜์žˆ๊ฒŒ๋˜์–ด ๋‹คํ–‰์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ ๋ฏธ๋Ÿฌ GitHub ์Šค๋ ˆ๋“œ๋ฅผ ๋ฐฉ๊ธˆ ์‚ดํŽด ๋ณด์•˜๊ณ , ๊ทธ๋“ค์€ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ์ด ์ž‘์—…์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋งŽ์€ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Code Mirror๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์›น ์‚ฌ์ดํŠธ๋„ ์œˆ-์œˆ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

๊ฐ€์„ค ์ ์œผ๋กœ ์ƒํ™ฉ์„ ์‚ดํŽด๋ณด๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ Pode ๋„๊ตฌ์˜ ๋ˆ„๋ฝ ๋œ ๊ธฐ๋Šฅ์ด Code Mirror์˜ ๋Œ€์ฒด๋ฌผ๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ฒฝ์šฐ Free Code Camp์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ง์ ‘์ด ์ด๋ฉ”์ผ์— ํšŒ์‹ ๋Š” GitHub์˜์—์„œ ๋ณผ https://github.com/freeCodeCamp/freeCodeCamp/issues/12431#issuecomment-354240665 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/notifications/unsubscribe-auth/AdDz24NBYQr6hKSp_HsEnOryzgzIkA24ks5tEz5PgaJpZM4LdzaT์„ .

@inscriptioelectronicaaustralia CodeMirror๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ์ด ํฌํ•จ ๋œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” Pode๊ฐ€ CodeMirror๊ฐ€ํ•˜๋Š” ๋ชจ๋“  ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์˜์‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ์„ ์˜ ์„ ํƒ์€ CodeMirror๋ฅผ ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CodeMirror๋ฅผ ํŒจ์น˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ ํ•ฉ์‹œ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค์†Œ ํ˜„์‹ค์ ์œผ๋กœ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋Š” ์˜ฌํ•ด ๋‚ด๋‚ด ์กด์žฌํ–ˆ๊ณ  ๋ช‡ ์ฃผ ๋™์•ˆ์€ ํ•œ ์‚ด์งœ๋ฆฌ ์ˆ ์ง‘์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š”์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ ์–ด๋„ 2 ๋…„, ์–ด์ฉŒ๋ฉด 3 ๋…„ ๋™์•ˆ ์ง•์ง• ๊ฑฐ๋ฆฌ๊ณ  ์œผ๋ฅด๋  ๊ฑฐ ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ฐธ์œผ๋กœ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. FCC๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ์—„์ฒญ๋‚œ ์„ฑ๊ฐ€์‹ฌ์— ๋ฏธ๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์‰ฝ๊ณ , ๋‚ฎ์€ ์ง„์ž… ์ž„๊ณ„ ๊ฐ’๊ณผ ์ฝ”๋”ฉ์˜ ๋‹จ์ˆœ์„ฑ, ์ฝ”๋”ฉ ํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹ค์‹œ๊ฐ„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ํ˜„์žฌ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” freecodecamp๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋งŽ์€ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋งค๋ ฅ์ ์ธ.
CodeMirror๋Š” ์ฃผ๋กœ ๊ทธ๋ž˜ํ”ฝ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ž˜ํ”ฝ ๋ฐฉ์‹์œผ๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ์œผ๋ฉฐ ์ด์ „์˜ ํ‘œ์ค€ DOM ์ž‘์—…์„ ๊ฑฐ์˜ ์™„์ „ํžˆ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์œ„๋ฅผ ๋‘˜๋Ÿฌ ๋ณด๋ฉด ์›Œ๋“œ ํ”„๋ ˆ์Šค์กฐ์ฐจ๋„์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์œผ๋ฉฐ ์•„์ง์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ WP์˜ ๊ธฐ๋ณธ WordPress ํŽธ์ง‘๊ธฐ๋กœ codeMirror๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•˜๊ฒŒํ–ˆ์œผ๋ฉฐ ํ•ด๋‹น ํŽธ์ง‘๊ธฐ๊ฐ€ ์‹ค์ œ๋กœ ๊ธฐ๋ณธ์œผ๋กœ ๊ตฌํ˜„ ๋œ ๊ฒฝ์šฐ ์‹œ๊ฐ ์žฅ์• ๊ฐ€์žˆ๋Š” WordPress ๊ด€๋ฆฌ์ž์— ๋Œ€ํ•œ ์˜ตํŠธ ์•„์›ƒ์„ ๊ตฌํ˜„ํ•˜์—ฌ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ๊ด€๋ฆฌ์ž ๊ฒฝํ—˜์„ ์™„์ „ํžˆ ์ค‘๋‹จํ•˜์ง€ ์•Š๋„๋กํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. CodeMirror๋Š” ์กฐ๋งŒ๊ฐ„ ์ˆ˜์ •๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Pode๋ฅผ ๋น ๋ฅด๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ์ฃผ๋กœ HTML ์šฉ ํŽธ์ง‘๊ธฐ ์ธ ๊ฒƒ ๊ฐ™๊ณ  ์•ˆํƒ€๊น๊ฒŒ๋„ CodeMirror์˜ ๊ธฐ๋Šฅ์— ๊ฐ€๊นŒ์›Œ์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šฌํ”„๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์—†์œผ๋ฉฐ ํŒจ์น˜๋Š”์ด ๋ฌธ์ œ๋ฅผ ์‚ดํŽด ๋ณด๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค : https://github.com/codemirror/CodeMirror/issues/4604
์ œ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ž„์‹œ ๋ฐฉํŽธ์€ CM ์ฝ˜ํ…์ธ ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์˜์—ญ์œผ๋กœ ๋ Œ๋”๋งํ•˜๊ณ  CM์˜ ํ•ด๋‹น ํ…์ŠคํŠธ ์˜์—ญ์— ๋Œ€ํ•œ ํŽธ์ง‘ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํƒญ์˜ ํ‚ค ๋‹ค์šด์ด ๊ฐ์ง€๋˜๊ฑฐ๋‚˜ ctrl + enter๊ฐ€ ๊ฐ์ง€ ๋  ๋•Œ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CodeMirror๊ฐ€ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ (์œ„์— ์–ธ๊ธ‰ ๋œ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋ถˆํ™•์‹คํ•˜์ง€๋งŒ ์‹ค์ ์„ ๋ณผ ์ˆ˜๋Š” ์—†์„ ๊ฒƒ์ž„) ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์œ„ํ•ด ํ๊ธฐ ๋  ๋•Œ๊นŒ์ง€ ์งง์€ ์‹œ๊ฐ„ ๋‚ด์— ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด ๋” ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Quincy, ์ €๋Š” CodeMirror๊ฐ€ ๋ถ„๋ช…ํžˆ ์šฐ์ˆ˜ํ•œ ์†”๋ฃจ์…˜์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (Pode๋Š” ์ดˆ๋ณด์ž๋ฅผ์œ„ํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค). ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ด์ƒ์  ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Pode์— ๋ถ€์กฑํ•œ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ๋ฌผ์€ ์ด์œ ๋Š” CodeMirror๊ฐ€ ์ฝ”๋”ฉ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์‹œ๊ฐ์  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ CodeMirror ํŽธ์ง‘ ํ•„๋“œ์˜ ํ…์ŠคํŠธ๋ฅผ ์Šคํฌ๋ฆฐ ๋ฆฌ๋”๋กœ ์ฝ์„ ์ˆ˜์žˆ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Windows ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์šฉ JAWS ์šฉ ์Šคํฌ๋ฆฝํŠธ ๋ฐ / ๋˜๋Š” ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ NVDA ์Šคํฌ๋ฆฐ ๋ฆฌ๋” ์šฉ ์• ๋“œ์˜จ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค (macOS ์šฉ VoiceOver๋Š” ์Šคํฌ๋ฆฝํŒ…์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค) ์‚ฌ์šฉ์ž๊ฐ€ CodeMirror ํ…์ŠคํŠธ ํ•„๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ๋˜ ํ…์ŠคํŠธ๊ฐ€ JAWS ๋˜๋Š” NVDA ํ…์ŠคํŠธ ๋ฒ„ํผ๋กœ ๋ณต์‚ฌ๋˜์–ด ํŽธ์ง‘ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ‚ค ์ž…๋ ฅ์„ ํ†ตํ•ด ํŽธ์ง‘๊ธฐ๋กœ ๋‹ค์‹œ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ์ด "ํŠน๋ณ„ํ•œ"ํ…์ŠคํŠธ ํ•„๋“œ๋Š” CodeMirror๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JAWS๋Š” ๋„๋ฉ”์ธ ๋ณ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜์žˆ๋Š” ๋…์ ์  ์ธ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  NVDA๋Š” ์• ๋“œ์˜จ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Python์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํ•ด๋‹น ์Šคํฌ๋ฆฐ ๋ฆฌ๋”์— ๋Œ€ํ•ด ๋„๋ฉ”์ธ ๋ณ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@inscriptioelectronicaaustralia @zersiax @jhomme https://github.com/codemirror/CodeMirror/issues/4604#issuecomment -349920743์„ ์ฝ์—ˆ์„ ๋•Œ @marijnh ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์ด๋™ํ•  ๊ณ„ํš

์ตœ์•…์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์บ ํ”„ ์ฐธ๊ฐ€์ž๊ฐ€ ์„ค์ •์—์„œ CodeMirror for Pode์—์„œ ์ „ํ™˜ ํ•  ์ˆ˜์žˆ๋Š” "์ ‘๊ทผ์„ฑ ๋ชจ๋“œ"๋ฅผ ๊ตฌ์ถ• ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@marijnh ๊ฐ€ ๋ฌด์Šจ ๋ง์„ํ•˜๋Š”์ง€ ๊ธฐ๋‹ค๋ ค ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

marijnh์˜ ๋‹ต๋ณ€์„ ์ฝ์—ˆ๋Š”๋ฐ ์ ‘๊ทผ์„ฑ์„ ์–ป์„ ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ณ ๋ คํ•ด์•ผ ํ•  ํ•œ ๊ฐ€์ง€๋Š” ๋ถˆํ–‰ํžˆ๋„ ์‚ฌ๋žŒ๋“ค์ด "๋ช‡ ๋‹ฌ"์ด๋ผ๊ณ  ๋งํ•  ๋•Œ๋„ ์ ‘๊ทผ์„ฑ์ด ๋งค์šฐ ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด CodeMirror์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ถ”์„ธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด "๋ช‡ ๋‹ฌ"์ด๋ผ๊ณ  ๋งํ–ˆ์„ ๋•Œ์˜ ์˜ˆ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋ช‡ ๋‹ฌ ๋” ... ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๋‹ฌ ๋” ... ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๋ฆผ์„ ์–ป๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋“œ ํŽธ์ง‘๊ธฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ช‡ ๋‹ฌ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ 6 ์›”์— ์ด๋ฅด๋ €๋Š”๋ฐ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์‚ดํŽด ๋ณด๋Š” ๊ฒƒ๋„ ๊ณ ๋ คํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด "๋ช‡ ๋‹ฌ"์ด๋ผ๊ณ  ๋งํ–ˆ์„ ๋•Œ ๋ช‡ ๋‹ฌ ๋” ...

์ž‘์—…์ด ์ƒˆ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ _ ์‹œ์ž‘๋˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์•„๋ฌด๋„ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์•„๋ฌด๊ฒƒ๋„ ์•ฝ์†ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @marijnh

CodeMirror์˜ re-archi๋ฅผ ๊ณ ๋ คํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌ ๋“œ๋ฆฌ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์˜คํ”ˆ ์†Œ์Šค ๋…ธ๋ ฅ ์ธ ๋…ธ๋ ฅ์„ ์ง„์‹ฌ์œผ๋กœ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๋น„์˜๋ฆฌ ๋‹จ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋”ฉ ์ง€์› (pro-bono)์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ €ํฌ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“  ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋Ÿฌํ•œ ๋…ธ๋ ฅ์„ ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

CM ํ”„๋กœ์ ํŠธ (๋ฐ ๊ธฐ์—ฌ์ž)์— ๋Œ€ํ•œ ์ „ํˆฌ ํ…Œ์ŠคํŠธ ์ง€์‹์€ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ CodeMirror ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ๋ก ๋œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์•ˆ๋‚ดํ•ด ์ฃผ์‹œ๋ฉด ์ด๋Ÿฌํ•œ ๋…ธ๋ ฅ์„ ๋•๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @inscriptioelectronicaaustralia

...ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ 6 ์›”์— ์ด๋ฅด๋ €๋Š”๋ฐ ์•„๋ฌด๊ฒƒ๋„ ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ๊ณ ๋ คํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ถˆ๋งŒ์„ ์ง„์‹ฌ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ๊ณต์œ ํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์†”๋ฃจ์…˜์— ์ตœ์„ ์„ ๋‹คํ•  ์ค€๋น„๊ฐ€๋˜์–ด ์žˆ์ง€๋งŒ CM์ด a11y์—์„œ ๋” ๋‚˜์•„์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” IMHO๊ฐ€ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” freeCodeCamp ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋„์šธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ CM์ด ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ a11y๋ฅผ ๋” ์ž˜ ํ™œ์šฉํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์˜€์Šต๋‹ˆ๋‹ค.

์ฆ‰,

์œ„์˜ @zersiax ๋ถ„์„์€ ํ˜„์žฌ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ์ƒํƒœ์˜ ๋ชฉ์ ์— ๋งž์Šต๋‹ˆ๋‹ค.

Pode๋ฅผ ๋น ๋ฅด๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ์ฃผ๋กœ HTML ์šฉ ํŽธ์ง‘๊ธฐ ์ธ ๊ฒƒ ๊ฐ™๊ณ  ์•ˆํƒ€๊น๊ฒŒ๋„ CodeMirror์˜ ๊ธฐ๋Šฅ์— ๊ฐ€๊นŒ์›Œ์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šฌํ”„๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ž„์‹œ ๋ฐฉํŽธ์€ CM ์ฝ˜ํ…์ธ ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์˜์—ญ์œผ๋กœ ๋ Œ๋”๋งํ•˜๊ณ  CM์˜ ํ•ด๋‹น ํ…์ŠคํŠธ ์˜์—ญ์— ๋Œ€ํ•œ ํŽธ์ง‘ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํƒญ์˜ ํ‚ค ๋‹ค์šด์ด ๊ฐ์ง€๋˜๊ฑฐ๋‚˜ ctrl + enter๊ฐ€ ๊ฐ์ง€ ๋  ๋•Œ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CodeMirror๊ฐ€ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ (์œ„์— ์–ธ๊ธ‰ ๋œ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋ถˆํ™•์‹คํ•˜์ง€๋งŒ ์‹ค์ ์„ ๋ณผ ์ˆ˜๋Š” ์—†์„ ๊ฒƒ์ž„) ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์œ„ํ•ด ํ๊ธฐ ๋  ๋•Œ๊นŒ์ง€ ์งง์€ ์‹œ๊ฐ„ ๋‚ด์— ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด ๋” ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ค‘๊ฐ„ ์†”๋ฃจ์…˜ ๊ตฌํ˜„์„ ์‚ดํŽด๋ณด๊ณ  CM ํŒ€๊ณผ ํ•จ๊ป˜ ๊ตฌ์ฒด์ ์ธ ๋„์›€์„๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋”ฉ ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๊ฐ€์žฅ ์œ ์šฉํ•œ ๊ธฐ์—ฌ ์œ ํ˜•์€ ํ™”๋ฉด ํŒ๋…๊ธฐ ์‚ฌ์šฉ์ž ๋ฐ / ๋˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ ‘๊ทผ์„ฑ ์ „๋ฌธ๊ฐ€๊ฐ€ ์ƒˆ ํ”„๋กœํ†  ํƒ€์ž…์„ ํ…Œ์ŠคํŠธ ํ•œ ํ›„ ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‘œ์‹œ ํ•  ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๊ณต์ง€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์„ ๋ฐ›๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์—ฐ๋ฝ์ฒ˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ ๋œ ์ด๋ฉ”์ผ์„ ์ €์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@svinkle ์ด a11y ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

content-editable ๋ฌธ์ œ๊ฐ€ ์—…์ŠคํŠธ๋ฆผ์œผ๋กœ ํ•ด๊ฒฐ ๋  ๋•Œ๊นŒ์ง€ ์ค‘๋‹จ ๊ฐ„๊ฒฉ์ด ์ž‘๋™ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

์ œ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ž„์‹œ ๋ฐฉํŽธ์€ CM ์ฝ˜ํ…์ธ ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์˜์—ญ์œผ๋กœ ๋ Œ๋”๋งํ•˜๊ณ  CM์˜ ํ•ด๋‹น ํ…์ŠคํŠธ ์˜์—ญ์— ๋Œ€ํ•œ ํŽธ์ง‘ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํƒญ์˜ ํ‚ค ๋‹ค์šด์ด ๊ฐ์ง€๋˜๊ฑฐ๋‚˜ ctrl + enter๊ฐ€ ๊ฐ์ง€ ๋  ๋•Œ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CodeMirror๊ฐ€ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ (์œ„์— ์–ธ๊ธ‰ ๋œ ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋ถˆํ™•์‹คํ•˜์ง€๋งŒ ์‹ค์ ์„ ๋ณผ ์ˆ˜๋Š” ์—†์„ ๊ฒƒ์ž„) ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์œ„ํ•ด ํ๊ธฐ ๋  ๋•Œ๊นŒ์ง€ ์งง์€ ์‹œ๊ฐ„ ๋‚ด์— ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ์ž‘์—…์ด ๋” ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ ‘๊ทผ ๋ฐฉ์‹์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋ฉด CM ํŽธ์ง‘๊ธฐ ์ฝ˜ํ…์ธ ๊ฐ€ textarea ๋กœ๋“œ๋˜๊ณ  textarea ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—…๋ฐ์ดํŠธ / ์ €์žฅ์‹œ textarea ์ฝ˜ํ…์ธ ๊ฐ€ CM ํŽธ์ง‘๊ธฐ์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.

CM ํŽธ์ง‘๊ธฐ๊ฐ€ ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๊นŒ? textarea ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‘ ๊ฐœ์˜ ํŽธ์ง‘ ์˜์—ญ์ด ์žˆ์œผ๋ฉด ํ˜ผ๋ž€ ์Šค๋Ÿฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@QuincyLarson ๋ฐ ๊ด€๋ จ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜,

ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š” ๋ฐ์žˆ์–ด ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ณ ๋ ค ์‚ฌํ•ญ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ…์ŠคํŠธ ์˜์—ญ์œผ๋กœ ์›์ˆญ์ด ํŒจ์น˜๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— CM ์— @BerkeleyTrue ์™€ ๋ช‡ ๊ฐ€์ง€ ๋…ผ์˜๋ฅผ ํ†ตํ•ด

๋ฒ ํƒ€ (์ƒˆ๋กœ์šด ๋ฆฌ ์•กํŠธ ํ”„๋ŸฐํŠธ ์—”๋“œ)์—์„œ๋Š” CodeMirror์— ์ง์ ‘ ์˜์กดํ•˜์ง€ ์•Š๊ณ  CM ์ƒ๋‹จ์˜ ๊ฒฝ๋Ÿ‰ ๋ž˜ํผ ์ธ ๋ฆฌ ์•กํŠธ ์ปดํฌ๋„ŒํŠธ react-codemirror ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฒ ํƒ€ ํ”Œ๋žซํผ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ–ฅํ›„ ์–ธ์  ๊ฐ€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋…ผ์˜์ค‘์ธ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๊ธฐ๋Šฅ์„ ๋ž˜ํ•‘ํ•˜๋Š” ์ƒ์œ„ CM์—์„œ์™€ ๋™์ผํ•œ a11y ์ง€์›์ด ์—†๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์›์ˆญ์ด ํŒจ์น˜๋Š” ์‚ฌ์†Œํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@raisedadead ์ด๊ฒƒ์„ ์ง€์  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. CodeMirror๊ฐ€ ์ ‘๊ทผ์„ฑ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ๋‹ค์Œ ๊ฑฐ๊ธฐ์—์„œ ์›์ˆญ์ด ํŒจ์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ํ”Œ๋žซํผ์—์„œ Monaco ํŽธ์ง‘๊ธฐ๋กœ ์ „ํ™˜ํ–ˆ์Œ์„ ๋ฐœํ‘œํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ a11y๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” CodeMirror๋ฅผ ์ ˆ๋Œ€์ ์œผ๋กœ ์‚ฌ๋ž‘ํ•˜๋ฉฐ ๊ท€ํ•˜์™€ ํŒ€์ด ์ˆ˜ํ–‰ ํ•œ ๋ฉ‹์ง„ ์ž‘์—…์— ๋Œ€ํ•ด @marijnh ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๋‚œ ๋ช‡ ๋…„ ๋™์•ˆ ์‚ฌ์‹ค์ƒ ํŽธ์ง‘์ž์˜€์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ€๋ณ๊ณ  ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ž์œผ๋กœ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@zersiax , @mjanusauskas , @inscriptioelectronicaaustralia ๋ฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ฐธ์—ฌํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰