위키백과:HiddhidStructure

Wikipedia:
텍스트 숨김에 대한 도움말: 도움말을 참조하십시오.숨겨진 텍스트

CSS(Cascading Style Sheets, Cascading Style Sheets)를 사용함으로써, 템플릿 매개변수의 비음에 따라 인기 있는브라우저에서 템플릿의 텍스트를 숨길 수 있다.제발, 사용하지 마.이 페이지는 그것을 달성하기 위해 논란이 많은 특정한 방법을 문서화한다.

MediaWiki의 수석 개발자인 Brion VIBBER[1]는 hiddenStructure의 몇 가지 문제를 설명한다.

...텍스트 브라우저, 기사들의 일반 텍스트 렌더링, 그리고 이 사이트에서 스타일시트를 사용하지 않는 기사의 HTML 디스플레이에 실패할 수 있는 구조 요소를 숨기기 위해 CSS 해킹을 사용하고 있다.이것은 1차 현장의 접근성과 소외된 재료 재사용을 모두 해친다.

시각장애인 위키피디아 사람인 Graham87[2]은 화면 판독 소프트웨어와 그 안의 한계에 대해 논의하고, 또한 그는 우리가 CSS 해킹을 사용해서는 안 된다고 믿는다고 말한다.

...css 해킹은 오래된 화면 판독기를 사용하는 사람이 상당히 많을 것이고, 업그레이드 할 수 없을 수도 있기 때문에 사용하지 말 것을 강력히 권하고 싶다.

작동 방식

이 방법은 CSS 클래스 "hiddenStructure"의 존재에 의존한다.en: wiki의 경우 이는 MediaWiki에 정의되어 있다.Common.css(2006년 1월 17일, 20:50 기준 개정):

/* Monobook의 hiddenStructure - 템플릿 */ .hiddenStructure { display: none; speak: none; }에서 마크업을 선택적으로 숨길 수 있음

HTML 구성에 포함된 모든 텍스트<div class="hiddenStructure">text to hide</div>숨겨져 있다.클래스는 <스팬>이나 위키 행(-)과 같은 XHTML 요소에도 적용할 수 있다.

그런 다음 이 함수를 매개변수 기본 함수와 결합하여 템플릿 매개변수의 빈칸에 따라 텍스트를 선택적으로 숨긴다.여기 템플릿의 일부일 수 있는 간단한 표의 예가 있다."floss"가 공백으로 남겨진 경우,class{{{parameter }}}간단히 하기로 결심하다.class, CSS 호출을 위와 같이 완료한다."변수"의 어떤 가치에 대해서도 스타일은 무의미해지고 MediaWiki 소프트웨어에 의해 벗겨져 테이블 행은 물론 데이터까지 보이게 된다.

{ - class{{parameter }}="숨겨진 구조"! 헤더 {{{parameter }}}

주의사항

이 방법은 CSS가 아닌 브라우저(Lynx와 같은 텍스트 전용 브라우저 포함)에서 문자열을 숨기지 않으며, 여러 유형의 화면 판독기 및 기타 접근성 소프트웨어의 사용자에게도 적용되지 않는다.외국어 위키백과 및 일부 위키백과 미러를 포함하여 '숨겨진 구조' 클래스를 사용하도록 구성되지 않은 다른 사이트로 복사할 경우 이 방법에 의존하는 페이지도 제대로 표시되지 않는다.따라서, 템플릿은 읽을있고 그러한 브라우저를 사용하는 누군가에게 의미가 있어야 한다.페이지가 이 기법에 따라 의미가 달라지면 WAI 우선 순위 1 접근성 체크포인트가 깨진다.일부 일반적인 함정은 Infobox모든 행을 선택사항으로 표시하거나 선택적 매개변수 주변의 문장 부호를 숨기기 위해 이 방법을 사용하여 이를 남용하는 것을 포함한다.

  • 의도치 않게 작성된 문서 구조를 숨기기 위해 CSS를 사용하는 것은 웹 저작 관행이 나쁜 것으로 간주된다.
    • 이 접근방식은 중복된 정보를 고객에게 전달할 것이다.
    • 경우에 따라 이 접근방식은 기사의 맥락에서 무의미한 원시 위키텍스트를 포함한다(예: 템플릿:Infobox 사장)
  • 이 접근방식은 비주얼 브라우저에서 다른 브라우저 및 검색 엔진과 약간 다른 버전의 기사를 만든다.
  • 기사의 두 버전이 의미가 다를 경우, 페이지는 접근성 검증의 세 가지 단계를 모두 통과하지 못한다.

문제

CSS 해킹을 이용한 USS 모니터
메타템플릿을 사용한 USS 모니터
CSS 해킹을 이용한 블루웨일
메타템플릿을 이용한 블루웨일

hiddenStructure를 사용하는 것의 문제는 그것이 비표준적인 방법으로 행을 숨긴다는 것이다.다른 웹사이트들은 단순히 서버에서[1] 데이터를 전송하지 않음으로써 데이터를 숨기는 반면, hiddenStructure는 클라이언트에게 이 숨기기 프로세스를 방어한다.이 때문에 일부 비CSS 인식 또는 준수 브라우저가 이 해킹을 사용하여 페이지를 잘못 렌더링한다(오른쪽 사진 참조).

일부 페이지에서는 매개 변수가 실제로 비어 있지 않은 경우(구문 사용) 매개 변수만 표시하여 손상을 최소화함{{{parameter }}}이렇게 하면 못생긴 {{parameter}} 매개 변수 이름이 아닌 행만 표시된다.물론 많은 수의 조건부 행이 있는 템플릿에서, 이것은 여전히 불필요한 데이터가 비CSS 호환 브라우저에 표시되는 결과를 낳는다.

이러한 문제들 때문에 많은 기사들은 장애인들에게 좋지 않은 결과를 가져다 준다.최악의 경우 다수의 위키 마크업 매개변수가 표시되거나 판독기에 표시된다.최상의 경우 빈 행이 여러 개 표시/읽어진다.

이러한 이유로 hiddenStructure를 사용해서는 안 된다.

각주:

  1. ^ 대부분의 웹사이트는 PHPASP를 사용하여 서버에서 조건부로 데이터를 전송한다.고급 설계는 결과를 캐슁하므로 PHP/ASP 스크립트는 가능한 각 결과에 대해 한 번만 실행된다.

해결 방법

해결책은, 선호도 순서에 따라,

  • 파서 기능 사용
    • 장점: 다른 방법에 비해 서버 부하가 적고 파손될 가능성이 적다.
  • 위블 코드(예: {{row})를 사용한다.
    • 장점:메타 템포를 완전히 피할 수 있다.
    • 문제:빈 매개 변수(일반적으로) 필요if=)이 통과되다.또한 MediaWiki에서 조건화가 구현될 경우, 이 방법을 사용하는 템플릿을 찾아 교체하는 것이 더 어려울 수 있다.마지막으로 Weeble을 사용하는 템플릿은 일반적으로 코드에 관한 한 가장 추하다.
  • 조건부 행을 제한하거나 제거하십시오.
    • 장점:조건부 행 표시 문제를 방지한다.
    • 문제:조건부 행 표시 문제를 방지한다.

그 밖의 가능한 해결책은 다음과 같다.

  • 단일 템플릿을 여러 개의 다른 템플릿으로 분할하고 각 템플릿은 서로 다른 매개 변수 조합을 처리한다.
    • 문제:이것은 정비의 악몽이며, 템플릿의 목적에 어긋난다(유지관리를 한 곳으로 집중화).

기타 용도

CSS의 몇 가지 허용 용도 중 하나display: none기존 브라우저에만 삽입된 슬러지를 현대 브라우저에서 숨기기 위함입니다.대표적인 예로 리셋 버튼이 있다. 사용자가 로컬에서 텍스트 영역을 지울 수 있기 때문에 현대 브라우저에서는 이를 필요로 하지 않는다.레거시 브라우저는 이 기능을 제공하지 않으며 리셋 버튼에 의존한다.사용자가 의도치 않게 리셋을 클릭하면 양식의 수정 내용이 손실된다.기존 브라우저에서만 볼 수 있는 숨겨진 재설정 버튼은 이 문제를 피한다.

다른 예로는 미디어별 응용 프로그램이 있다.ASCII 예술로서의 이모티콘(smileys)은 언어 브라우저에서는 거의 무의미하며, 그것을 그곳에 숨기는 것이 가능하고 WAV를 제공할 수도 있다.때때로 저작권 정보는 인쇄된 출력물로 제한될 수 있다.일반적으로 마우스가 있는 비주얼 브라우저에서만 사용할 수 있는 정보는 텍스트, 인쇄, 음성 등을 제외한 대부분의 출력 매체에서 숨겨져 있는 일반 텍스트로 추가 표시될 수 있다.비슷한 개념은 다음과 같다.<noscript>원소의

알려진 용도

이 목록은 거의 무해하다고 간주되는 알려진 용도의 불완전한 목록이며, 발견한 내용을 추가하십시오.
  1. 템플릿:숨기기(토크 링크 기록 편집) - 무해하지 않을 수 있음

참고 항목