KR20200034660A - 쉬워진 사용자 반응 - Google Patents

쉬워진 사용자 반응 Download PDF

Info

Publication number
KR20200034660A
KR20200034660A KR1020197024910A KR20197024910A KR20200034660A KR 20200034660 A KR20200034660 A KR 20200034660A KR 1020197024910 A KR1020197024910 A KR 1020197024910A KR 20197024910 A KR20197024910 A KR 20197024910A KR 20200034660 A KR20200034660 A KR 20200034660A
Authority
KR
South Korea
Prior art keywords
interface
content
code
user
browser
Prior art date
Application number
KR1020197024910A
Other languages
English (en)
Inventor
레이몬드 제임스 가이
Original Assignee
알키라 소프트웨어 홀딩스 피티와이 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2017900198A external-priority patent/AU2017900198A0/en
Application filed by 알키라 소프트웨어 홀딩스 피티와이 리미티드 filed Critical 알키라 소프트웨어 홀딩스 피티와이 리미티드
Publication of KR20200034660A publication Critical patent/KR20200034660A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하는 방법으로서, 상기 방법은, 적절하게 프로그래밍된 컴퓨터 시스템 내에서, 브라우저 어플리케이션을 사용하여 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트 코드를 획득하는 단계로서, 상기 컨텐트 코드는 컨텐트를 나타내는 단계; 상기 컨텐트 코드로부터 컨텐트를 지시하는 객체 모델을 구성하는 단계로서, 상기 객체 모델은 다수의 객체들을 포함하고 각 객체는 연관된 객체 컨텐트를 가지며, 컨텐트가 브라우저 어플리케이션에 표시될 수 있도록 상기 객체 모델을 사용할 수 있는 단계; 상기 인터페이스 어플리케이션을 사용하여 상기 인터페이스 서버로부터 적어도 부분적으로는 컨텐트 주소에 따라 인터페이스 코드를 획득하는 단계; 상기 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하는 단계; 상기 사용자 인터페이스를 상기 인터페이스 코드 및 요구되는 객체 컨텐트에 따라 사용자에게 제시하는 단계로서, 상기 인터페이스는 적어도 부분적으로는 다음 중 적어도 하나를 나타내는 단계: 객체 컨텐트의 적어도 일부; 및, 적어도 하나의 사용 가능한 사용자 입력; 상기 인터페이스의 제시에 대한 반응으로 적어도 하나의 사용자 입력을 결정하는 단계; 및, 상기 사용자 입력 및 인터페이스 코드에 따라 브라우저에 대한 지시를 생성하는 단계; 및, 상기 브라우저 어플리케이션을 사용하여 브라우저에 대한 지시를 실행하여 이에 의해 컨텐트와 반응하는 단계를 포함한다.

Description

쉬워진 사용자 반응{FACILITATED USER INTERACTION}
본 발명은 컴퓨터 시스템에 의해 제시되는 컨텐트에 대한 사용자 반응을 쉽게 하기 위한 방법 및 장치에 대한 것이다.
선행 출판물(또는 이로부터 도출된 정보), 또는 알려져 있거나 알려지지 않은 기타 사항에 대한 본 명세서에서의 참조는 이러한 선행 출판물(또는 이로부터 도출된 정보) 또는 알려진 사항이 본 명세서가 관련된 노력의 분야에서의 통상적인 일반 지식의 일부를 형성하는 것을 제시한다는 인식이나 인정 또는 기타 다른 형태로서 받아들여져서는 안 된다.
컴퓨터 시스템에 의해 제시되는 컨텐트는 시각적 방식에 적응되어 제시되곤 하며 현재 시각 장애를 가진 사용자가 이러한 컨텐트와 반응하는 것은 매우 어려운 일이다. 예를 들어, 웹페이지는 그래픽 사용자 인터페이스 상에서 제시되며 이로 인해 사용자는 컨텐트 및 사용 가능한 대응 옵션을 보고 이해할 수 있어야 한다.
이러한 문제에 대한 현재의 해결책에는 일반적으로 컨텐트의 시각적 제시를 향상시키는 것이 포함되는데, 예를 들어 화면 확대기를 사용하거나, 화면 리더 어플리케이션을 사용하는 것이 있으며, 이는 단순히 디스플레이 되는 컨텐트를 들을 수 있는 형태로 변환할 뿐이다. 하지만, 이러한 시스템들은 일반적으로 작동시키기가 어려우며, 웹페이지와 같은 컨텐트 상에서는 불편하며 때때로는 비효율적으로 작동한다. 예를 들어, 확대기는 사용자가 부분적인 시각을 가지고 있는 경우에만 작동하며 사용자가 컨텐트를 표시하기 위해 커서를 관련된 화면의 위치로 움직여야 한다. 화면 리더의 경우에는, 리더가 화면 상의 컨텐트를 연속적으로 읽어 주게 되며, 이는 사용자가 웹페이지 상의 적절한 위치를 찾아 가는 것이 어려우며 많은 시간이 소요된다는 것을 의미하고, 특히, 웹페이지가 상당한 양의 컨텐트를 포함하는 경우에는 더욱 심각해 진다. 또한, 화면 리더는 그래픽이나 이미지에 적절한 태그가 표시되어 있지 않는 한 그 내용을 표시할 수 없으며, 그 결과로 웹페이지의 많은 의미가 소실되게 된다.
이러한 문제를 해결하기 위한 여러 시도들이 있었다. 예를 들어, 웹 컨텐트 접근성 가이드라인(Web Content Accessibility Guidelines: WCAG)이 장애를 가진 사람이 웹사이트에 반응하거나 접근하는 것을 막는 장벽을 제거하기 위한 시도로서 구현된 바 있다. 이러한 가이드라인들은 화면 리더와 같은 네비게이션 도구들을 지원하기 위해 웹사이트에 포함되어야 하는 태그 속성들을 정의한다. 하지만, 이를 구현하기 위해서는 이러한 태그 속성들이 웹사이트 디자인에 본질적이며 웹사이트의 구축자에 의해 실현되어야 한다. 이에 대한 웹 템플릿으로부터의 지원은 현재 제한되어 있으며, 많은 정부에서 이를 채택하기는 하였고 정부가 이를 강제할 수는 있지만, 업계에서는 제한되어 채택되고 있다. 이러한 문제는 대부분의 사용자 또는 개발자가 이러한 접근성에 관심을 갖지 않고 있으며, 이와 관련된 디자인 요건들이 미적인 면에 크게 중점을 두는 일반적인 디자인 목표와는 상충된다는 사실로 인해 더욱 악화되고 있다.
이러한 결과로, 웹사이트의 맞춤형 디자인이 없이는, 화면 리더와 같은 시스템은 시각적 장애를 가진 사용자에게 사용 가능한 경험을 기술적으로 전달할 수 없다.
컨텐트를 보거나 입력을 제공할 수 있는 능력이 제한될 때 다른 환경에서 유사한 문제가 발생한다는 것 또한 인식할 수 있을 것이다. 이러한 문제는 크기가 축소된 화면과 같은 다른 보기 환경에서 사용자가 컨텐트를 보려고 할 때, 핸드 프리 방식에서 또는 가상 보조 또는 비시각적 인터페이스를 사용하여 컨텐트에 반응하려 할 때 발생할 수 있다.
하나의 광범위한 형태에서, 본 발명의 일 측면은 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하는 방법을 제공하고자 하며, 상기 방법은, 적절하게 프로그래밍된 컴퓨터 시스템 내에서, 브라우저 어플리케이션을 사용하여 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트 코드를 획득하는 단계로서, 상기 컨텐트 코드는 컨텐트를 나타내는 단계; 상기 컨텐트 코드로부터 컨텐트를 지시하는 객체 모델을 구성하는 단계로서, 상기 객체 모델은 다수의 객체들을 포함하고 각 객체는 연관된 객체 컨텐트를 가지며, 컨텐트가 브라우저 어플리케이션에 표시될 수 있도록 상기 객체 모델을 사용할 수 있는 단계; 상기 인터페이스 어플리케이션을 사용하여 상기 인터페이스 서버로부터 적어도 부분적으로는 컨텐트 주소에 따라 인터페이스 코드를 획득하는 단계; 상기 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하는 단계; 상기 사용자 인터페이스를 상기 인터페이스 코드 및 요구되는 객체 컨텐트에 따라 사용자에게 제시하는 단계로서, 상기 인터페이스는 적어도 부분적으로는 다음 중 적어도 하나를 나타내는 단계: 객체 컨텐트의 적어도 일부; 및, 적어도 하나의 사용 가능한 사용자 입력; 상기 인터페이스의 제시에 대한 반응으로 적어도 하나의 사용자 입력을 결정하는 단계; 및, 상기 사용자 입력 및 인터페이스 코드에 따라 브라우저에 대한 지시를 생성하는 단계; 및, 상기 브라우저 어플리케이션을 사용하여 브라우저에 대한 지시를 실행하여 이에 의해 컨텐트와 반응하는 단계를 포함한다.
일 실시예에서 상기 인터페이스 코드는 다수의 인터페이스 페이지들을 정의하며, 상기 방법은 여러 개의 인터페이스 페이지들을 시퀀스로 제시하여 이에 의해 태스크가 수행되도록 하는 것을 포함한다.
일 실시예에서 상기 방법은 상기 인터페이스 어플리케이션에서, 인터페이스 페이지를 제시하는 단계; 제시된 인터페이스 페이지에 대한 응답으로 적어도 하나의 사용자 입력을 결정하는 단계; 적어도 하나의 사용자 입력 및 상기 인터페이스 코드에서 정의된 인터페이스 페이지들의 시퀀스에 따라 적어도 부분적으로 다음 인터페이스 페이지를 선택하는 단계; 및, 다음 인터페이스 페이지를 사용자에게 제시하는 단계를 포함한다.
일 실시예에서 상기 방법은 상기 인터페이스 어플리케이션에서, 인터페이스 페이지에 대해 요구되는 객체 컨텐트를 인터페이스 코드에 따라 결정하는 단계; 요구되는 객체 컨텐트를 획득하는 단계; 및, 요구되는 객체 컨텐트를 사용하여 상기 인터페이스 페이지를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 상기 인터페이스 어플리케이션에서 상기 인터페이스 코드를 사용하여 요구되는 객체 컨텐트를 결정하는 단계; 요구되는 객체 컨텐트를 지시하는 객체 요청을 생성하는 단계; 및, 브라우저 어플리케이션에 대한 객체 요청을 제공하는 단계; 및, 상기 브라우저 어플리케이션에서 상기 객체 요청을 수신하는 단계; 요구되는 객체 컨텐트를 결정하는 단계; 요구되는 객체 컨텐트를 지시하는 객체 컨텐트 반응을 생성하는 단계; 및, 상기 인터페이스 어플리케이션에 대한 반응으로 상기 객체 컨텐트를 제공하는 단계를 포함한다.
일 실시예에서 상기 인터페이스 코드는 적어도 하나의 인터페이스 페이지 에 대한 템플릿을 정의하며, 상기 방법은 요구되는 객체 컨텐트를 사용하여 템플릿을 생성 배포함으로써 다음 사용자 인터페이스 페이지를 생성하는 단계를 포함한다.
일 실시예에서 상기 객체 컨텐트는 다수의 컨텐트 항목들을 포함하며, 상기 방법은 상기 인터페이스 어플리케이션에서 상기 인터페이스 코드를 사용하여 적어도 하나의 컨텐트 항목에 해당하는 하나 또는 그 이상의 인터페이스 항목을 식별하는 단계; 및, 상기 인터페이스 항목을 사용하여 다음 인터페이스 페이지를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 다음 인터페이스 페이지가 생성될 때 청취 가능한 신호를 제시하는 것을 포함한다.
일 실시예에서 상기 인터페이스 페이지들은 컨텐트의 구조에 따라 계층적으로 배치된다.
일 실시예에서 적어도 하나의 인터페이스 페이지는 각각의 반응 및 하나 또는 그 이상의 반응 대응 옵션을 지시하며, 상기 방법은 인터페이스 어플리케이션에서 사용자가 입력한 명령에 따라 반응 대응 옵션 중 하나의 선택을 결정하는 단계; 및, 상기 선택된 반응 대응 옵션을 사용하여 다음 인터페이스 페이지를 선택하는 단계; 생성될 브라우저에 대한 지시를 결정하는 단계 중 적어도 하나를 포함한다.
일 실시예에서 상기 인터페이스 코드는 생성될 브라우저에 대한 지시를 정의하는 것; 다수의 반응 옵션 각각에 대해 각각의 브라우저에 대한 지시를 정의하는 것; 브라우저에 대한 지시를 생성하기 위한 스크립트를 포함하는 것; 및 브라우저에 대한 지시를 정의하는 스크립트를 포함하는 것 중 적어도 하나를 포함한다.
일 실시예에서 상기 사용자 인터페이스는 들을 수 있는 방식; 볼 수 있는 방식; 시각적으로 단순화된 형식; 다른 단일 색상의 배경에 단일 색상 폰트를 사용; 어두운 배경에 밝은 폰트를 사용; 밝은 배경에 어두운 폰트를 사용; 높은 대조의 색상 체계를 사용; 및, 매우 큰 폰트를 사용하는 것 중 적어도 하나의 방식으로 제시된다.
일 실시예에서 상기 컨텐트 주소는 URL(Universal Resource Locator)이며 상기 컨텐트 코드는 HTML 코드를 포함한다.
일 실시예에서 상기 객체 모델은 문서 객체 모델(DOM); 및, 스타일 모델 중 적어도 하나를 포함한다.
일 실시예에서 상기 반응은 행동이 가능한 요소를 선택하는 것; 컨텐트를 수정하는 것; 폼을 컨텐트 서버로 제출하는 것; 사용자 입력을 컨텐트 서버로 제출하는 것; 및, 컨텐트 서버로부터 추가적인 컨텐트를 요청하는 것 중 적어도 하나를 포함한다.
일 실시예에서 상기 방법은 상기 브라우저 어플리케이션을 활용하여 컨텐트 주소를 포함하는 컨텐트 요청을 생성하는 단계; 및, 컨텐트 서버에 컨텐트 요청을 제공하는 단계로서, 상기 컨텐트 서버는 컨텐트 코드를 제공하기 위해 상기 컨텐트 요청에 반응적인 단계를 포함한다.
일 실시예에서 상기 방법은 상기 인터페이스 어플리케이션을 사용하여 상기 컨텐트 주소를 포함하는 인터페이스 코드 요청을 생성하는 단계; 및, 인터페이스 서버로 인터페이스 코드 요청을 제공하는 단계로서, 상기 인터페이스 서버는 상기 인터페이스 코드를 제공하기 위해 상기 인터페이스 코드 요청에 반응적인 단계를 포함한다.
일 실시예에서 상기 인터페이스 코드는 마크업 언어 코드를 포함한다.
일 실시예에서 상기 방법은 적어도 부분적으로는 컨텐트에 대한 반응의 분석을 통해 인터페이스 코드를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 컨텐트를 분석하여 수행될 적어도 하나의 반응; 및 사용자에게 제시될 적어도 일부 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이되도록 하기 위해 사용될 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트를 식별하는 단계; 사용자에게 제시될 사용자 인터페이스를 생성하는 단계로서, 상기 사용자 인터페이스는 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및, 상기 인터페이스의 제시에 대한 대응으로 제공할 수 있는 적어도 하나의 사용자 입력을 지시하는 것인 단계; 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하는 단계; 및, 사용자 인터페이스 및 상기 브라우저에 대한 지시단계를 지시하는 인터페이스 코드를 생성하는 단계를 포함한다.
하나의 광범위한 형태에서, 본 발명의 일 측면은 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위한 시스템을 제공하고자 하며, 상기 시스템은 적절하게 프로그래밍된 컴퓨터 시스템을 포함하며, 상기 컴퓨터 시스템은 브라우저 어플리케이션을 사용하여 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트를 나타내는 컨텐트 코드를 획득하고; 상기 컨텐트 코드로부터의 상기 컨텐트를 지시하는 객체 모델을 구성하며, 이때 상기 객체 모델은 다수의 객체들을 포함하고 각 객체는 연관된 객체 컨텐트를 가지고, 상기 객체 모델은 컨텐트가 상기 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 사용할 수 있으며; 인터페이스 어플리케이션을 사용하여 인터페이스 서버로부터 적어도 부분적으로 상기 컨텐트 주소에 따라 인터페이스 코드를 획득하고; 상기 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트가 있으면 이를 획득하며; 인터페이스 코드 및 요구되는 객체 컨텐트에 따라 사용자에게 사용자 인터페이스를 제시하고, 이때 상기 인터페이스는 적어도 일부의 객체 컨텐트; 및, 적어도 하나의 사용 가능한 사용자 입력 중 적어도 하나를 적어도 부분적으로 지시하며; 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고; 사용자 입력 및 인터페이스 코드에 따라 브라우저에 대한 지시를 생성하며; 브라우저 어플리케이션을 사용하여 브라우저에 대한 지시를 실행하여 이에 의해 상기 컨텐트와 반응하는 것을 특징으로 한다.
하나의 광범위한 형태에서, 본 발명의 일 측면은 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위해 사용할 수 있는 인터페이스 코드를 생성하는 방법을 제공하고자 하며, 상기 방법은 적절하게 프로그래밍된 컴퓨터 시스템 내에서 컨텐트를 분석하여 사용자에게 제시될 적어도 일부의 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 하기 위해 사용할 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트; 및, 수행될 적어도 하나의 반응을 식별하는 단계; 사용자에게 제시할 사용자 인터페이스를 생성하는 단계로서, 상기 사용자 인터페이스는 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및, 적어도 하나의 사용 가능한 사용자 입력을 지시하는 단계; 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하는 단계; 및, 상기 사용자 인터페이스 및 상기 브라우저에 대한 지시를 지시하는 인터페이스 코드를 생성하는 단계로서, 상기 인터페이스 코드는 인터페이스 어플리케이션에 의해 실행될 수 있으며 이를 통해 상기 인터페이스 어플리케이션이 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하고; 상기 사용자 인터페이스를 사용자에게 제시하며; 상기 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고; 사용자 입력에 따라 브라우저에 대한 지시를 결정하며; 브라우저 어플리케이션에 브라우저에 대한 지시를 제공하여 상기 브라우저 어플리케이션이 상기 브라우저에 대한 지시를 실행하고 이에 따라 상기 컨텐트와 반응 하도록 하는 단계를 포함한다.
일 실시예에서 상기 방법은 컨텐트를 분석하여 사용자에게 제시될 객체 컨텐트를 식별하고; 상기 객체 컨텐트를 포함하는 객체를 식별하고; 식별된 객체 및 객체 컨텐트에 따라 객체 요청을 정의하고; 객체 요청에 따라 인터페이스 코드를 생성함으로써 인터페이스 코드를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 사전에 정의된 객체 요청들의 목록을 표시하고, 이때 사전에 정의된 객체 요청 각각은 연관된 사전에 정의된 코드를 가지며; 적어도 하나의 사전에 정의된 객체 요청을 선택하고; 상기 연관된 사전에 정의된 코드를 사용하여 상기 인터페이스 코드를 생성함으로써 상기 객체 요청을 정의하는 단계를 포함한다.
일 실시예에서 상기 방법은 다음과 같이 객체 컨텐트를 제공하고; 사용 가능한 사용자 입력들을 제공하는 것 중 적어도 하나에 대한 템플릿을 생성하고, 상기 템플릿에 따라 인터페이스 코드를 생성함으로써 인터페이스를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 각각의 사전에 정의된 템플릿이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 템플릿들의 목록을 디스플레이하고; 적어도 하나의 사전에 정의된 템플릿을 선택하고; 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 하나 또는 그 이상의 인터페이스 항목들을 정의하는 단계를 포함한다.
일 실시예에서 상기 객체 컨텐트는 다수의 컨텐트 항목들을 포함하며, 상기 방법은 컨텐트 항목을 선택하는 단계; 상기 선택된 컨텐트 항목에 해당하는 인터페이스 항목을 정의하는 단계; 및, 상기 인터페이스 항목에 따라 인터페이스 코드를 생성하는 단계를 포함한다.
일 실시예에서 상기 방법은 각각의 사전에 정의된 인터페이스 항목이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 인터페이스 항목들의 목록을 디스플레이하고; 적어도 하나의 사전에 정의된 인터페이스 항목을 선택하고; 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 하나 또는 그 이상의 인터페이스 항목들을 정의하는 단계를 포함한다.
일 실시예에서 상기 인터페이스 코드는 컨텐트에 대해 가능한 반응을 식별하고; 하나 또는 그 이상의 가능한 반응들에 대한 지시를 결정하고; 상기 지시를 사용하여 인터페이스 코드를 생성함으로써 생성된다.
일 실시예에서 상기 인터페이스 코드는 각각의 사전에 정의된 반응이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 반응들의 목록을 디스플레이하고; 컨텐트에 대해 가능한 반응들에 따라 적어도 하나의 사전에 정의된 반응을 선택하고; 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 생성된다.
일 실시예에서 상기 인터페이스 코드는 하나 또는 그 이상의 각각의 태스크를 나타내는 반응들의 시퀀스를 결정하고; 상기 시퀀스에 따라 인터페이스 코드를 생성함으로써 생성된다.
하나의 광범위한 형태에서, 본 발명의 일 측면은 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위해 사용할 수 있는 인터페이스 코드를 생성하기 위한 시스템을 제공하고자 하며, 상기 시스템은 컨텐트를 분석하여 사용자에게 제시될 적어도 일부의 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 하기 위해 사용할 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트; 및, 수행될 적어도 하나의 반응을 식별하고; 사용자에게 제시할 사용자 인터페이스를 생성하며, 상기 사용자 인터페이스는 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및, 적어도 하나의 사용 가능한 사용자 입력을 지시하고; 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하고; 상기 사용자 인터페이스 및 상기 브라우저에 대한 지시를 지시하는 인터페이스 코드를 생성하며, 상기 인터페이스 코드는 인터페이스 어플리케이션에 의해 실행될 수 있으며 이를 통해 상기 인터페이스 어플리케이션이 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하고; 상기 사용자 인터페이스를 사용자에게 제시하며; 상기 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고; 사용자 입력에 따라 브라우저에 대한 지시를 결정하며; 브라우저 어플리케이션에 브라우저에 대한 지시를 제공하여 상기 브라우저 어플리케이션이 상기 브라우저에 대한 지시를 실행하고 이에 따라 상기 컨텐트와 반응 하도록 하는 적절하게 프로그래밍된 컴퓨터 시스템을 포함한다.
발명의 넓은 범위의 형태 및 이들 각각의 특징들은 결합하여, 상호 교차적 및/또는 독립적으로 사용될 수 있으며, 별도의 넓은 형태에 대한 참조는 본 발명을 제한하는 것임에 유의해야 한다.
본 발명의 다양한 예 및 실시예들이 첨부된 도면을 참조하여 이하에서 설명될 것이며, 도면은 다음과 같다:
도 1A는 컴퓨터 시스템에 의해 제시되는 컨텐트에 대한 사용자 반응을 쉽게 하기 위한 방법의 예의 흐름도;
도 1B는 인터페이스 코드를 생성하기 위한 과정의 예의 흐름도;
도 2는 컴퓨터 아키텍처의 예의 개략도;
도 3은 도 2의 처리 시스템의 예의 개략도;
도 4 도 2의 컴퓨터 시스템의 예의 개략도;
도 5A는 전통적인 웹 브라우저의 기능적 동작의 예의 개략도;
도 5B는 웹페이지에 대한 사용자 반응을 쉽게 하기 위한 인터페이스의 기능적 작동의 예의 개략도;
도 6A 내지 6C는 웹페이지에 대한 사용자 반응을 쉽게 하기 위한 프로세스의 특정한 예의 흐름도;
도 7A 내지 7F는 예시적 사용자 인터페이스의 개략도이며;
도 8A 내지 8C는 인터페이스 코드를 생성하기 위한 과정의 특정한 예이다.
컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하는 과정의 예를 도 1A를 참조하여 기술할 것이다.
본 예의 목적 상, 이러한 과정은 서버와 같은 원격 처리 시스템에 의해 호스팅되는 컨텐트를 가져 오고 이와 반응할 수 있는 적절하게 프로그래밍된 컴퓨터 시스템을 사용하여 구현되는 것으로 가정한다. 상기 컴퓨터 시스템은 개인용 컴퓨터, 노트북 또는 이와 유사한 전통적인 컴퓨터 시스템일 수 있으나, 적절하게 프로그래밍된 태블릿, 스마트폰 등과 같이 컨텐트를 가져 오고 이와 반응할 수 있는 모든 장치를 포함할 수 있으며, 따라서 이러한 용어는 이러한 장치, 시스템 또는 배치된 구성 모두를 포함하는 것으로 간주되어야 할 것이다.
본 예의 목적 상, 상기 컴퓨터 시스템은 브라우저 어플리케이션 및 별도의 인터페이스 어플리케이션을 실행하는 것으로 가정한다. 상기 브라우저 어플리케이션은 전통적인 웹 브라우저의 적어도 일부를 모방하며, 이는 일반적으로 웹페이지를 가져 오고 이에 대한 사용자 반응을 가능하게 하며, 반면에 상기 인터페이스 어플리케이션은 이러한 경우에 사용자 인터페이스를 제시하고 사용자 입력을 획득하기 위해 사용된다. 설명의 목적 상, 상기 브라우저 및 인터페이스 어플리케이션은 별도의 개체로 설명되며, 기능성은 흐름도의 왼쪽과 오른쪽에 각각 표시된다. 하지만, 이것이 본질적인 것은 아니며, 실제로 브라우저 및 인터페이스 어플리케이션들이 하나의 통합된 어플리케이션으로 구현될 수 있다.
본 예에서, 상기 브라우저 어플리케이션은 단계 100에서 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트 코드를 획득하기 위해 사용된다. 컨텐트의 특성, 컨텐트 코드 및 컨텐트 주소는 바람직한 구현에 따라 달라질 것이다. 일 례로서, 상기 컨텐트는 웹페이지이고, 컨텐트 코드는 HTML(HyperText Markup Language) 또는 또 다른 유사한 코드이며 상기 컨텐트 주소는 URL(Universal Resource Locator) 또는 이와 유사한 것이다. 이러한 경우에, 상기 컨텐트 서버는 웹 서버이지만, 이하의 설명에서 다른 구성 또한 가능하다는 것을 알 수 있을 것이다.
단계 105에서 상기 브라우저 어플리케이션은 상기 컨텐트 코드로부터 컨텐트를 나타내는 객체 모델을 생성하기 위해 활용된다. 상기 객체 모델은 일반적으로 다수의 객체를 포함하고, 이들 각각은 연관된 객체 컨텐트를 가지며, 상기 객체 모델은 컨텐트가 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 사용될 수 있다. 보다 상세하게는, 실제로, 상기 객체 모델은 웹페이지를 구성하고 이후에 그래픽 사용자 인터페이스(GUI)의 일부로서 렌더링하기 위해 브라우저 어플리케이션에 의해 사용되며, 다만 이 단계가 현재의 방법에서 요구되는 것은 아니다. 이로부터, 상기 객체 모델이 일반적으로 수신된 컨텐트 코드를 파싱함으로써 생성되는 DOM(Document Object Model)을 포함할 수 있음을 인식할 수 있을 것이다.
병렬로 수행될 수 있는 별도의 과정에서, 또는 컨텐트가 브라우저 어플리케이션에 의해 요청되기 이전이나 이후에, 단계 110에서 상기 인터페이스 어플리케이션은 인터페이스 서버 로부터 인터페이스 코드를 획득한다. 이는 다시 일반적으로 컨텐트 주소에 따라 적어도 부분적으로 수행되며, 컨텐트 주소 또는 그 일부를 인터페이스 서버로 전달하는 것을 포함할 수 있다. 상기 인터페이스 코드는 인터페이스가 사용자에게 제시되어 사용자가 인터페이스 어플리케이션을 통해 컨텐트에 반응할 수 있도록 하기 위해 활용되며, 이는 이하에서 보다 상세하게 설명된다.
상기 인터페이스 코드는 어떠한 적절한 형태일 수 있으나 일반적으로는 인터페이스 어플리케이션에 의해 해석되어 인터페이스가 제시될 수 있도록 하는 지시를 포함하는 마크업 언어 파일을 포함한다. 상기 인터페이스 코드는 상기 컨텐트 코드에 의해 구현된 컨텐트 및 사용자가 상기 컨텐트와 반응하는 방식 에 대한 이해를 기반으로 개발된다. 상기 인터페이스 코드는 수동 및/또는 자동화된 과정에 의해 생성될 수 있으며 이는 이하에서 보다 상세하게 설명된다.
현재의 예에서, 상기 인터페이스 서버는 인터페이스 코드를 호스팅하며 컨텐트 서버와는 분리되어 있다. 하지만, 이것이 본질적인 것은 아니며 다른 방식으로 인터페이스 서버와 컨텐트 서버가 컨텐트 및 인터페이스 코드 모두를 호스팅하는 단일한 논리적 또는 물리적 서버일 수 있다는 것을 인식할 수 있을 것이다.
단계 115에서 인터페이스를 제시하기 위해 필요한 요구되는 어떠한 객체 컨텐트도 브라우저 어플리케이션으로부터 획득된다. 이는 어떠한 적절한 방식으로도 수행될 수 있으며 상기 브라우저 어플리케이션이 객체 컨텐트를 인터페이스 어플리케이션으로 푸시하도록 하는 과정을 포함할 수 있으나 일반적으로는 상기 인터페이스 어플리케이션이 브라우저 어플리케이션으로부터 객체 컨텐트를 탐색하는 단계를 포함한다. 일례로서, 이는 인터페이스 어플리케이션이 브라우저 어플리케이션에 지시를 전송함으로써 브라우저 어플리케이션이 관련된 컨텐트를 반환하도록 야기하는 것을 요청하게 함으로써 성취된다. 이러한 요구되는 객체 컨텐트는 일반적으로 인터페이스 코드에 의해 특정되며, 이는 이하에서 보다 상세하게 설명하기로 한다.
단계 120에서 이러한 사용자 인터페이스는 사용자 인터페이스 코드 및 요구되는 어떠한 객체 컨텐트에 따라 사용자에게 제시된다. 이러한 사용자 인터페이스는 일반적으로 객체 컨텐트의 적어도 일부 및/또는 하나 또는 그 이상의 사용 가능한 사용자 입력을 나타내며, 이에 따라 컨텐트가 사용자 및/또는 사용자가 제공하는 적절한 사용자 입력으로 제시되도록 한다. 이러한 사용자 인터페이스는 일반적으로 사용자 반응을 쉽게 하는 방식으로 제시되어, 시각 장애를 가진 사용자에 의한 사용, 또는, 예를 들어, 사용자가 음성 명령 및/또는 가상 지원 소프트웨어를 사용하여 컨텐트에 반응하거나, 사용자가 디스플레이를 쉽게 볼 수 없는 등의 사용자가 반응하기에 제한된 능력을 가진 환경에서의 사용에 적절하게 된다. 사용자 인터페이스가 제시되는 방식에는 보통의 배경 상에 보통의 대형 서체를 사용한 텍스트와 같은 쉽게 읽을 수 있는 텍스트를 활용하여 인터페이스를 디스플레이하고 또한/또는 청취 가능한 프롬프트를 통해 인터페이스를 청취할 수 있도록 제시하는 것이 포함될 수 있다. 이하에서 보다 상세하게 설명되듯이, 상기 사용자 인터페이스는 보통은 매우 단순하게 디자인되며 일반적으로 단일 질문이나 정보의 단편을 포함하며, 이는 하나 또는 그 이상의 사용 가능한 반응 옵션과 함께 제공되어 이를 통해 컨텐트와 반응하는 과정을 단순화한다. 특히, 이는 사용자가 컨텐트와 완전히 비시각적 방식으로, 또는 시각적 인터페이스가 사용되는 경우에는, 인터페이스를 잠깐 쳐다 보는 등 보기를 최소화하는 방식으로 반응할 수 있게 해 준다.
단계 125에서 상기 인터페이스 어플리케이션은 상기 인터페이스의 제시에 대한 응답으로 적어도 하나의 사용자 입력을 결정한다. 상기 사용자 입력은 어떠한 적절한 방식으로도 제공될 수 있으며 터치스크린, 마우스나 키보드, 또는 말로 반응을 제공할 수 있는 마이크, 제스처 반응을 제공할 수 있는 카메라나 다른 영상 장치 등과 같은 입력 장치의 활용을 포함할 수 있다.
일례로서, 사용자 입력은 단계 130에서 브라우저에 대한 지시가 생성되는 것을 야기하며, 이러한 브라우저에 대한 지시는 상기 사용자 입력 및 상기 인터페이스 코드를 기반으로 한다. 이러한 면에서, 인터페이스 코드 내에서 사용자 입력이 다르거나, 요구되는 행동이 다르면, 일반적으로 브라우저에 대한 지시가 다르게 정의될 것이며 이러한 지시는 선택적으로 입력한 텍스트와 같은 사용자 입력을 기반으로 수정된다. 이러한 브라우저에 대한 지시는 어떠한 적절한 형태로도 가능하며 지역적으로 또는 컨텐트 서버로부터의 업데이트된 컨텐트를 요청함으로써 컨텐트의 업데이트를 수행하기 위해 단순한 명령, 또는 브라우저 어플리케이션에 의해 수행될 수 있는 하나 또는 그 이상의 스크립트를 포함할 수 있다.
브라우저에 대한 지시는 모든 사용자 반응에 대해 요구되지 않을 수 도 있음을 인식할 수 있을 것이다. 예를 들어, 일부 반응들은 단순히 또 다른 인터페이스가 표시되게 하는 결과를 가져 오며, 이는 이하에서 보다 상세히 설명된다.
하지만, 브라우저에 대한 지시가 생성되는 것으로 가정하면, 단계 135에서 상기 브라우저에 대한 지시는 브라우저 어플리케이션으로 제공되어 이에 따라 컨텐트에 대해 요구되는 반응이 수행될 수 있도록 상기 브라우저 어플리케이션이 지시를 수행할 수 있게 된다. 이러한 면에서, 이러한 반응의 특성은 특정한 상황에 따라 변화하게 될 것이며, 텍스트 또는 기타 정보의 입력, 컨텐트의 선택, 입력 버튼이나 하이퍼링크 등과 같은 능동적 요소의 선택을 포함할 수 있다. 위에서 설명한 프로세스는 반복적으로 제공되어 사용자가 다중 반응을 수행할 수 있게 하여, 이에 따라 폼을 완성하고 제출하며, 검색을 수행하고 검토하는 등의 각각의 태스크들이 수행될 수 있도록 할 수 있다는 사실이 인식되어야 할 것이다.
이에 따라, 위에서 설명한 과정은 사용자 인터페이스를 사용자에게 제시하기 위해 별도의 인터페이스 어플리케이션을 활용함으로써 사용자가 웹페이지와 같은 컨텐트에 반응할 수 있게 해 준다. 이러한 인터페이스 어플리케이션은 시각 장애를 가진 사용자가 쉽게 이해하거나 시각 장애를 가진 사용자가 조금만 보거나 보지 않으면서 사용할 수 있는 단순화된 인터페이스를 사용자에게 제시하기 위해 활용되며, 예를 들어 시리(SiriTM), 코타나(CortanaTM) 등의 가상 보조 도구를 통해 컨텐트에 반응할 수 있도록 한다. 이를 성취하기 위해, 이러한 단순화된 인터페이스는 일반적으로 전체 컨텐트 및/또는 브라우저 어플리케이션에 의해 제시되는 컨텐트로써 수행될 수 있는 잠재적 반응의 부분 집합에 해당하는 제한된 양의 컨텐트를 디스플레이한다. 이는 이러한 인터페이스가 아주 단순화되도록 하여, 쉽게 이해할 수 있는 방식으로 쉽게 컨텐트를 찾아 다니고 반응할 수 있게 해 준다. 이러한 접근 방식은 또한 웹페이지에 대한 일반적인 작업 흐름을 나타내는 다중 인터페이스를 시퀀스로 제시하여 사용자가 불필요하게 많은 정보를 제시할 필요를 줄이면서도 사용자가 원하는 결과를 보다 신속하게 완수할 수 있도록 해 준다.
이러한 인터페이스는 컨텐트 코드에 추가되는 별도의 인터페이스 코드를 사용하여 제시되며, 이는 원래의 컨텐트 코드가 변하지 않고 남아 있을 수 있다는 것을 의미한다. 또한, 컨텐트 서버에 대한 모든 반응은 브라우저 어플리케이션에 의해 성취되며, 이는 컨텐트 서버의 입장에서는 제공되는 컨텐트의 프로세스가 변하지 않는다는 것을 의미한다. 이는 이러한 시스템이 기존의 컨텐트 코드 또는 웹사이트 프로세스에 대한 변화를 요구하지 않으면서 쉽게 배포될 수 있다는 것을 의미한다.
또한, 이러한 인터페이스는 사용자 입력 명령을 수신하고, 이러한 명령들을 해석하며 상기 브라우저 어플리케이션을 제어하기 위한 제어 지시를 생성하도록 작동하기도 한다. 따라서, 이러한 인터페이스는 사용자가 인터페이스 어플리케이션에만 반응할 수 있도록 브라우저 어플리케이션에 대한 입력 및 출력 인터페이스 모두로 작동한다는 것을 인식할 수 있을 것이다. 이러한 인터페이스들이 엄격하게 제어되는 방식으로 제시될 수 있기 때문에, 이는 상이한 소스로부터의 매우 넓은 범위의 컨텐트를 일관된 방식으로 제시할 수 있게 해 주면서도 사용자에 대해 친숙한 환경을 제공하여, 사용자가 보다 쉽게 컨텐트를 찾아 다니고 볼 수 있게 해 준다.
따라서, 이는 크게 향상된 사용자 반응 경험을 제공하여, 기존의 브라우징 프로세스를 교란하지 않으면서 효과적으로 이러한 것들이 구현되도록 하는 기술적 문제들을 더욱 해소하면서도 시각적 장애를 가진 사용자가 정상적인 시각을 가진 사용자를 위해 디자인된 컨텐트에 효율적으로 접근할 수 있게 해 준다는 것을 인식할 수 있을 것이다.
또한 이러한 프로세스가 필요한 음성 프롬프트를 제공하고 가상 인격 보조 도구에 대해 기대되는 넓은 범위의 음성 반응을 설정하여 역시 기존의 브라우징 프로세스를 교란하지 않으면서 사용자가 핸드 프리 상태에서 웹사이트에 효과적으로 반응할 수 있게 해 준다는 것을 인식할 수 있을 것이다.
여러 추가적인 특징들이 이하에서 설명될 것이다.
일례로서, 위에서 언급된 것과 같이, 사용자 인터페이스는 일반적으로 다수의 인터페이스 페이지들을 포함하며, 이 때 상기 방법은 태스크들이 수행될 수 있도록 하기 위해 여러 개의 인터페이스 페이지들을 시퀀스로 제시하는 것을 포함한다. 따라서, 사용자가 어떠한 태스크를 수행하기를 원하는지를 확인하고 다시 이러한 태스크들 보다 쉽게 반응할 수 있는 시퀀스로 쪼개기 위해 인터페이스 페이지를 활용할 수 있으며, 이에 따라 태스크를 완수하는 과정이 단순화된다.
인터페이스 페이지들의 시퀀스를 제시하는 프로세스는 일반적으로 인터페이스 페이지를 제시하고, 상기 제시된 인터페이스 페이지에 대한 반응으로 적어도 하나의 사용자 입력을 결정하고, 사용자 입력에 따라 다음 인터페이스 페이지를 적어도 부분적으로 선택하고 이후에 다음 페이지를 제시함으로써 완수되며, 이러한 프로세서는 원하는 반응들이 수행될 때까지 필요에 따라 반복할 수 있게 된다. 이러한 인터페이스 페이지들의 시퀀스는, 예를 들어, 이전에 표시된 페이지 및 선택된 반응을 기반으로 어떠한 인터페이스 페이지가 제시되어야 하는지를 규정함으로써 일반적으로 인터페이스 코드에서 정의된다. 이러한 방식으로, 태스크를 구현하기 위한 작업 흐름이 인터페이스 코드에서 구성될 수 있으며, 이는 사용자가 태스크를 수행하기 위해 사전에 웹사이트의 구조를 알고 있을 필요가 없다는 것을 의미한다.
상기 인터페이스 페이지들이 완전히 인터페이스 코드 안에서만 정의될 수 있기는 하지만, 일반적으로 적어도 인터페이스 페이지들의 일부는 웹사이트의 특정한 부분과 같은 컨텐트를 표시할 것이다. 올바른 컨텐트를 가져와 표시하는 것을 보장하기 위해, 상기 요구되는 컨텐트는 인터페이스 코드 내에서 규정된다. 컨텐트는 동적이며 시간이 지남에 따라 변화할 수 있기 때문에, 이러한 컨텐트는 일반적으로 특히 컨텐트가 획득되는 객체를 규정함으로써 신뢰도 있게 컨텐트를 가져올 수 있게 해 주는 방식으로 정의된다. 이에 따라, 인터페이스 페이지가 표시되어야 할 때, 상기 방법은 일반적으로 상기 인터페이스 어플리케이션이 인터페이스 코드에 따라 다음의 인터페이스 페이지에 대해 요구되는 객체 컨텐트를 결정하고 요구되는 객체 컨텐트를 획득하고 이후 요구되는 객체 컨텐트를 사용하는 다음 사용자 인터페이스 페이지를 생성 하게 하는 것을 포함한다.
특별한 일례로서, 상기 컨텐트를 가져오는 프로세스는 일반적으로 인터페이스 어플리케이션이 인터페이스 코드를 사용하여 요구되는 객체 컨텐트를 결정하고, 요구되는 객체 컨텐트를 지시하는 객체 요청을 생성하며, 브라우저 어플리케이션으로 객체 요청을 제공하도록 하는 것을 포함한다. 이러한 경우에, 상기 브라우저 어플리케이션은 객체 요청을 수신하고, 일반적으로 구성된 객체 모델로부터 요구되는 객체 컨텐트를 결정하며, 요구되는 객체 컨텐트를 지시하는 객체 컨텐트 반응을 생성하고 이후 인터페이스 어플리케이션 에 객체 컨텐트 반응을 제공한다.
예상되는 컨텐트가 사용 가능하지 않은 경우에는, 인터페이스 코드에서 정의된 대로 대체적인 객체 컨텐트가 디스플레이될 수 있음을 인식할 수 있을 것이다. 예를 들어, 요청된 자원을 사용할 수 없는 경우에는, 대안적인 자원 및/또는 오류 메시지가 표시되어, 예외 처리가 수행되도록 할 수 있다.
인터페이스 페이지가 유사한 방식으로 생성되도록 하기 위해서, 객체 컨텐트를 통합하기는 하지만, 상기 인터페이스 코드는 일반적으로 적어도 하나의 인터페이스 페이지 에 대한 템플릿을 정의하며, 이 때 상기 방법은 요구되는 객체 컨텐트를 사용하여 템플릿을 생성 배포함으로써 사용자 인터페이스 페이지를 생성하는 단계를 포함한다. 이는 요구되는 객체 컨텐트가 특별한 방식으로 제시될 수 있도록 하여 이에 따라 그 의미를 단순화시키게 된다. 이는 예를 들어 객체 컨텐트를 별도의 항목들로 분할하는 것을 포함할 수 있을 것이며, 이들은 다시 특별한 시퀀스에서 청취 가능하게 제시되거나 단순화된 시각적 인터페이스 상에서 특별한 방식으로 배치되게 된다.
특별한 일 례로서, 상기 객체 컨텐트는 아이콘 등과 같은 다수의 컨텐트 항목들을 포함할 수 있으며, 이는 시각 장애를 가진 사용자가 이해하기 어려울 수 있다. 이를 해소하기 위해, 상기 인터페이스 어플리케이션은 상기 인터페이스 코드를 사용하여 적어도 하나의 컨텐트 항목에 해당하는 하나 또는 그 이상의 인터페이스 항목을 식별하고 다시 상기 인터페이스 항목을 사용하여 다음 인터페이스 페이지를 생성하도록 맞춤형으로 구성될 수 있다. 따라서, 시각적인 장애를 가진 사용자가 이해하기 어려운 컨텐트 항목들은 인터페이스 항목들로 참조되는 보다 이해하기 쉬운 컨텐트로 대체될 수 있다. 예를 들어, 기차의 그림을 보여 주는 아이콘은 기차라는 단어로 대체될 수 있으며 이는 다시 들을 수 있거나 볼 수 있는 형태로 제시될 수 있다.
일 례로서, 예를 들어 추가적인 컨텐트가 컨텐트 서버로부터 요청되는 경우에 컨텐트 페이지를 생성하는데 시간이 걸릴 수 있으므로, 인터페이스 페이지가 생성되는 동안 청취 가능한 신호가 제시될 수 있으며, 이를 통해 사용자에게 이러한 과정이 발생하고 있다는 사실을 알릴 수 있다. 이를 통해 사용자는 인터페이스 어플리케이션이 올바르게 작동하고 있음을 알 수 있으며 해당 사용자가 언제 다음 인터페이스 페이지가 제시될지를 알 수 있게 된다.
상기 인터페이스 페이지는 컨텐트의 구조에 따라 계층적으로 배치될 수 있다. 예를 들어, 이는 각 인터페이스 페이지가 각각의 반응 및 하나 또는 그 이상의 연관된 사용자 입력 옵션과 같은 태스크의 특정한 부분을 지시하여 상기 인터페이스 페이지가 상기 페이지가 태스크를 수행하기 위해 요구되는 전형적인 사용자 반응들의 시퀀스에 따른 시퀀스로 제시될 수 있도록 배치될 수 있게 해 준다. 이는 사용자가 다수의 태스크들 중 어떤 것을 수행할지를 선택할 수 있도록 하기 위해 하나 또는 그 이상의 초기 페이지들을 제시하고 이후 해당 태스크를 완수하기 위한 별도의 페이지들을 제시하는 것을 포함할 수 있다. 이는 컨텐트를 쉽게 찾아 다니는데 도움이 될 것이라는 것을 인식할 수 있을 것이다.
일례로서, 상기 인터페이스 페이지를 제시하는 프로세스는 사용자 입력 명령에 따라 다수의 반응 대응 옵션들 중 하나의 선택을 결정하고 이후 선택된 반응 대응 옵션을 사용하여 다음 인터페이스 페이지를 선택하거나 생성될 브라우저에 대한 지시를 결정하는 것을 포함한다.
따라서, 위의 설명으로부터 상기 인터페이스 코드가 인터페이스 페이지들이 제시되는 방식과 순서 및 수행될 관련된 행동들을 제어한다는 것을 인식할 수 있을 것이다. 상기 인터페이스 코드는 또한 이러한 브라우저가 어떻게 제어되며, 상기 인터페이스 코드가 생성될 브라우저에 대한 지시를 정의하게 함으로써 무엇을 완수하는 지를 규정하며, 일 례로서, 다수의 대응 옵션 각각에 대해 브라우저에 대한 지시를 각각 생성하는 것을 들 수 있다. 이는 인터페이스 코드가 브라우저에 대한 지시를 생성하기 위한 스크립트를 포함하게 함으로써 성취할 수 있으며, 아니면 인터페이스 코드의 일부를 형성하며 단순히 필요에 따라 브라우저로 전송될 수 있는 브라우저에 대한 지시를 정의하는 스크립트를 포함할 수 있다. 따라서 컨텐트와 반응하기 위해 요구되는 모든 브라우저에 대한 지시는 상기 인터페이스 코드 내에서 정의되며, 이는 상기 인터페이스 어플리케이션이 요구되는 어떤 반응에 대해서도 적절한 지시를 생성할 수 있음을 의미한다.
상기 사용자 인터페이스는 일반적으로 청각적 및/또는 시각적으로 제시된다. 시각적으로 제시되는 경우, 이는 일반적으로 시각적으로 단순화 된 형태로 제시되며, 어두운 배경에 밝은 폰트, 매우 높은 대조의 폰트 및/또는 큰 크기의 폰트 등과 같이 다른 색상의 대비되는 단일 색상의 배경에 단일 색상을 사용할 수 있다. 이 기술은 시각 장애를 가진 사람이 인터페이스를 상대적으로 쉽게 볼 수 있게 해 준다.
일례로서, 상기 컨텐트 주소는 URL(Universal Resource Locator)이며 상기 컨텐트 코드는 HTML 코드를 포함한다. 하지만, 이는 본질적인 것은 아니며 다른 컨텐트 주소 및/또는 코드가 사용될 수 있다. 상기 객체 모델은 일반적으로 문서 객체 모델(DOM)이지만 스타일 모델을 포함할 수도 있다.
위에서 논의한 것과 같이, 상기 인터페이스 컨텐트는 컨텐트에 대한 지식 및 컨텐트에 대한 사용자의 일반적인 반응을 기반으로 생성될 수 있다. 이는 수동 기술 및/또는 자동화된 기술을 사용하여 수행될 수 있으며 인터페이스 코드를 생성하는 프로세스의 예를 도 1B를 참조하여 이하에서 설명하기로 한다.
본 예에서는, 단계 150에서, 컨텐트가 분석되고, 이는 각각 단계 155 및 160에서 수행될 하나 또는 그 이상의 반응 및 이 프로세스의 일부로서 사용자에게 제시되는 객체 컨텐트를 식별하기 위해 사용된다. 이러한 프로세스들은 오퍼레이터가 컨텐트에 접근하여 이를 검토하고 수행되어야 하는 반응들과 제시되어야 하는 컨텐트를 수동으로 선택하는 실질적으로 수동인 프로세스를 활용하여 수행될 수 있다. 하지만, 다른 방식으로 이는, 예를 들어 컨텐트에 대한 사용자의 다중 반응을 평범한 일상적인 반응의 일부로서 모니터링하고, 사용자가 수행하는 통상적인 태스크를 식별하는 등에 의해 자동화되거나 반 자동화된 방식으로 수행될 수 있다. 여기에는 링크의 선택, 정보의 입력 등 특정한 반응들을 모니터링하는 것이 포함될 수 있으며, 또한, 예를 들어 눈동자 추적 기술 등을 사용하여 사용자가 어떠한 컨텐트를 보는지를 검사하는 것 또한 포함될 수 있으며, 이는 해당 분야에 통상의 지식을 가진 자라면 인식할 수 있을 것이다.
단계 165에서 사용자에게 제시될 사용자 인터페이스가 생성된다. 이러한 인터페이스는 적절한 방식으로 생성될 수 있으며 오퍼레이터가 제시될 컨텐트를 규정하고 사용자 인터페이스 내에서의 컨텐트의 레이아웃 및/또는 청취 가능한 프리젠테이션 시퀀스와 같이 이를 어떻게 제시할지를 정하는 것을 포함할 수 있다. 이는 또한 제시된 컨텐트에 대해 가능한 사용자 반응을 식별함으로써 이들이 적절한 대응의 옵션으로 정의되도록 하는 것을 포함할 수 있다. 이 프로세스는 일반적으로 컨텐트가 어떻게 제시될 것인지를 규정하는 다수의 템플릿들을 제공하여, 템플릿들 중 각 하나를 선택하여 템플릿을 사용하여 해당 인터페이스가 생성될 수 있게 함으로써 안내된다.
단계 170에서, 브라우저가 행동을 수행하도록 하거나 관련된 객체 컨텐트를 제공하도록 하는 등의 요청된 브라우저에 대한 모든 지시들이 생성된다. 이러한 브라우저에 대한 지시들은 오퍼레이터가, 예를 들어, 적절한 코드를 생성함으로써 지시를 정의하도록 하고 또한/또는 하나 또는 그 이상의 사전에 정의된 지시들을 선택하게 함으로써 생성된다.
이 단계에 이어, 단계 175에서 인터페이스를 지시하는 인터페이스 코드가 생성되며, 이후 브라우저에 대한 지시가 생성될 수 있다. 따라서, 상기 인터페이스 코드는 제시되는 인터페이스를 정의하며, 여기에는 컨텐트를 디스플레이하기 위해 요구되는 모든 객체 컨텐트, 인터페이스외 연관된 대응 옵션, 및 원하는 사용자 반응을 구현하기 위해 요구되는 모든 브라우저에 대한 지시들이 포함된다.
이 프로세스는 일반적으로 반복적으로 수행되어 인터페이스들의 시퀀스가 생성되도록 하여 사용자가 상기 인터페이스들을 사용하여 관련된 태스크들을 완수할 수 있도록 원하는 반응들의 시퀀스가 수행되도록 한다.
이에 따라, 이는 인터페이스 및 이와 연관된 사용자 입력에 대한 인터페이스 반응이 컨텐트의 분석을 통해 생성되도록 하기 위한 메커니즘을 제공하는 것으로 인식될 수 있을 것이다. 이는, 예를 들어 오퍼레이터가 컨텐트를 검사하고 발생할 반응 및 검토할 필요가 있는 컨텐트들을 검토함으로써 수동 방식으로 수행되거나, 예를 들어 인공 지능을 사용하여 다수의 사용자들에 의한 웹사이트에 대한 반응을 검사함으로써 자동화 또는 반자동화된 방식으로 수행될 수 있다.
다수의 추가적인 특징들을 이하에서 설명하도록 한다.
일례로서, 상기 방법은 사용자에게 제시될 객체 컨텐트를 식별하기 위해 컨텐트를 분석함으로써 인터페이스 코드를 생성하는 단계, 객체 컨텐트를 포함하는 객체를 식별하는 단계, 식별된 객체 및 객체 컨텐트에 따라 객체 요청을 정의하는 단계 및 객체 요청에 따라 인터페이스 코드를 생성하는 단계를 포함한다. 따라서, 오퍼레이터 또는 자동화된 프로세스가 제시될 객체 컨텐트를 식별하여 상기 인터페이스 어플리케이션에 의해 실행되면 상기 브라우저 어플리케이션으로부터 각각의 컨텐트를 가져오기 위해 사용되는 요청을 생성하게 된다. 상기 객체 컨텐트는 일반적으로 객체 컨텐트를 포함하는 객체를 기반으로 식별되며, 이에 따라 상기 브라우저 어플리케이션이 생성된 객체 모델로부터 관련된 컨텐트를 쉽게 식별할 수 있게 해 준다. 이를 통해 컨텐트가 특정한 웹페이지의 최종 레이아웃에 관계 없이 식별될 수 있게 된다는 것을 인식할 수 있을 것이다.
상기 방법은 일반적으로 각각 연관된 사전에 정의된 코드를 가지는 사전에 정의된 객체 요청들의 목록을 표시함으로써 객체 요청을 정의하고, 사전에 정의된 객체 요청들을 선택하며, 이후 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성하는 단계를 포함한다. 따라서, 특정한 객체 컨텐트에 대한 요청을 지시하는 표준적인 코드를 이와 함께 생성할 수 있으며 이들이 인터페이스 코드를 정의하기 위해 사용될 수 있도록 이후에 요구되는 바에 따라 단순히 선택 및/또는 수정할 수 있다.
상기 인터페이스 페이지는 유사한 방식으로 생성될 수 있다. 이러한 점에서, 인터페이스 페이지들이 컨텐트의 특성에 무관하게 일관된 방식으로 생성되는 것이 바람직하며, 따라서 이는 일반적으로 템플릿을 사용하여 구동된다. 이에 따라, 상기 방법은 일반적으로 상기 객체 컨텐트 및/또는 사용 가능한 사용자 입력을 제시하기 위한 템플릿을 생성함으로써 인터페이스를 생성하는 단계 및 이후 템플릿에 따라 특히 상기 템플릿을 구현하기 위한 인터페이스 코드를 생성하는 단계를 포함한다. 이는 다시 각각 연관된 사전에 정의된 코드를 가지는 사전에 정의된 템플릿들의 목록을 표시하고, 사전에 정의된 템플릿들 중 하나를 선택하고, 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 완수될 수 있다.
컨텐트가 이해될 수 있는 방식으로 제시되는 것을 보장하기 위해, 일례로서, 상기 인터페이스 코드는 컨텐트가 인터페이스 상에서 보다 쉽게 제시될 수 있는 형태로 변환될 수 있도록 생성된다. 이를 성취하기 위해, 상기 방법은 일반적으로 디스플레이될 객체 컨텐트 내에서 컨텐트 항목을 선택하는 단계, 선택된 컨텐트 항목에 해당하는 인터페이스 항목을 정의하는 단계 및 상기 인터페이스 항목에 따라 인터페이스 코드를 생성하는 단계를 포함한다. 따라서, 이 과정은, 예를 들어, 아이콘을 음성으로 된 단어 또는 이와 유사한 것으로 대체하는 것과 같이 컨텐트의 일부와 보다 쉽게 이해할 수 있는 인터페이스 항목 사이의 변환을 가능하게 한다. 다시, 이는 일반적으로 각각 사전에 정의된 코드를 가지는 사전에 정의된 인터페이스 항목들의 목록을 표시하고, 사전에 정의된 인터페이스 항목들 중 하나를 선택하고, 상기 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 성취된다.
마지막으로, 컨텐트에 대한 반응을 식별하여, 반응에 대한 지시를 결정하고 이후 상기 지시를 사용하여 인터페이스 코드를 생성하는 것이 가능하다. 일례로서, 이는 관련된 코드를 가지는 사전에 정의된 반응들을 표시하고, 이들 중 하나를 선택하고, 이후 상기 연관된 사전에 정의된 코드를 사용하여 코드를 생성함으로써 완수될 수 있다. 따라서, 사용자는 단순히 자동으로 생성되고 있는 인터페이스 코드로써 반응의 유형을 선택함으로써 반응들을 정의할 수 있다.
이러한 프로세스들은 반복되어 다중 인터페이스 페이지들이 생성되게 하여, 상기 페이지들이 정의된 시퀀스로 제공되도록 함으로써 상기 컨텐트에 대하여 수행될 수 있는 태스크들을 나타낼 수 있다는 것을 인식할 수 있을 것이다.
위에서 언급한 바와 같이, 일례로서, 상기 과정은 분산된 아키텍처의 일부로서 작동하는 하나 또는 그 이상의 컴퓨터 시스템에 의해 수행되며, 이에 대한 예가 도 2를 참조하여 이하에서 설명될 것이다.
본 예에서, 다수의 처리 시스템들(210)이 인터넷 및/또는 다수의 로컬 에어리어 네트워크(LAN)와 같은 하나 또는 그 이상의 통신 네트워크(240)를 통해 하나 또는 그 이상의 컴퓨터 시스템(230)과 연결되어 제공된다.
어떠한 개수의 처리 시스템(210) 및 컴퓨터 시스템(230)도 제공될 수 있을 것이며, 본 명세서에서 표현하는 것은 단순히 예시를 위한 것이다. 상기 네트워크(240)의 구성 또한 예를 들기 위한 목적으로서, 실제로는 상기 처리 시스템(210) 및 컴퓨터 시스템(230)이 유선 또는 무선 연결과 같은 적절한 어떠한 메커니즘을 통해서도 통신할 수 있으며, 여기에는 블루투스 등과 같은 직접적 또는 포인트에서 포인트로의 연결과 아울러 모바일 네트워크, 802.11 네트워크와 같은 사설 네트워크, 인터넷, LAN, WAN, 등이 포함되지만 이로 제한되는 것은 아니다.
본 예에서, 상기 처리 시스템(210)은 컨텐트 및 인터페이스 코드에 대한 접근을 제공하도록 적응적으로 구성되어 컨텐트 및 인터페이스가 컴퓨터 시스템(230)을 통해 디스플레이되도록 하며, 사용자가 인터페이스를 통해 컨텐트에 반응할 수 있게 해 준다. 상기 처리 시스템(210)이 단일 객체로 보여지기는 하지만, 이들이, 예를 들어, 클라우드 기반 환경의 일부로서 다수의 지리학적으로 떨어진 위치에 분산된 다수의 처리 시스템들을 포함할 수 있다는 것을 인식할 수 있을 것이다. 따라서, 위에서 설명한 배치들이 본질적인 것은 아니며 다른 적절한 구성이 사용될 수 있을 것이다.
적절한 처리 시스템(210)의 일례가 도 3에 도시되어 있다. 이 예에서, 상기 처리 시스템(210)은 적어도 하나의 마이크로프로세서(300), 메모리(301), 키보드 및/또는 디스플레이와 같은 선택적인 입출력 장치(302), 및 도시된 것과 같이 버스(304)를 통해 상호 연결되는 외부 인터페이스(303)를 포함한다. 이 예에서 상기 처리 시스템(210)을 통신 네트워크(240), 데이터베이스(211), 기타 저장 장치, 등과 같은 주변 장치와 연결하기 위해 상기 외부 인터페이스(303)를 활용할 수 있다. 단일 외부 인터페이스(303)가 도시되기는 하였지만, 이는 예를 들기 위한 목적에 불과하며, 실제로는 다양한 방법들(예를 들어 이더넷, 직렬 연결, USB, 무선 등)을 사용하는 다중 인터페이스가 제공될 수도 있을 것이다.
사용에 있어서, 상기 마이크로프로세서(300)는 메모리(301)에 저장된 어플리케이션 소프트웨어의 형태로 지시를 실행하여 요구되는 과정들이 수행되도록 한다. 상기 어플리케이션 소프트웨어는 하나 또는 그 이상의 소프트웨어 모듈들을 포함할 수 있으며, 운영체제 등과 같은 적절한 실행 환경에서 실행될 수 있다.
이에 따라 상기 처리 시스템(210)은 적절하게 프로그래밍된 PC, 웹 서버, 네트워크 서버 등과 같은 적절한 어떠한 처리 시스템으로부터도 형성될 수 있음을 인식할 수 있을 것이다. 특별한 일 례로서, 상기 처리 시스템(210)은, 본질적인 것은 아니지만, 비휘발성(예를 들어, 하드 디스크) 저장 장치에 저장된 소프트웨어 어플리케이션을 실행하는 인텔 아키텍처 기반의 처리 시스템과 같은 표준적인 처리 시스템일 수 있다. 하지만, 상기 처리 시스템은 또한 마이크로프로세서, 마이크로칩 프로세서, 논리 게이트 구성, FPGA(Field Programmable Gate Array)와 같이 선택적으로 로직을 구현하는 것과 연관된 펌웨어, 또는 기타 다른 전자 장치, 시스템 또는 구성과 같은 어떠한 전자적 처리 장치일 수 있음이 이해되어야 할 것이다.
도 4에 도시된 것과 같이, 일례로서, 상기 컴퓨터 시스템(230)은 도시된 것과 같이 적어도 하나의 마이크로프로세서(400), 메모리(401), 키보드 및/또는 디스플레이 및 외부 인터페이스(403)와 같이 버스(404)를 통해 상호 연결되는 입출력 장치(402)를 포함한다. 본 예에서 상기 외부 인터페이스(403)는 상기 컴퓨터 시스템(230)을 통신 네트워크(240) 데이터베이스, 기타 저장 장치 등과 같은 주변 장치로 연결하기 위해 활용될 수 있다. 단일 외부 인터페이스(403)가 도시되었지만, 이는 단지 예시를 위한 것이며, 실제로는 다양한 방법(예를 들어 이더넷, 직렬 연결, USB, 무선 연결 등)을 사용하는 다중의 인터페이스가 제공될 수 있다.
사용에 있어서, 상기 마이크로프로세서(400)는 메모리(401)에 저장된 어플리케이션 소프트웨어의 형태로 지시를 실행하며, 상기 처리 시스템(210) 중 하나와의 통신을 가능하게 한다.
이에 따라, 상기 컴퓨터 시스템(230)이 적절하게 프로그래밍된 어떠한 처리 시스템으로부터도 형성될 수 있으며 적절하게 프로그래밍된 PC, 인터넷 터미널, 노트북, 또는 휴대용 PC, 태블릿, 스마트폰 등을 포함할 수 있음을 인식할 수 있을 것이다. 하지만, 상기 처리 시스템은 또한 마이크로프로세서, 마이크로칩 프로세서, 논리 게이트 구성, FPGA(Field Programmable Gate Array)와 같이 선택적으로 로직을 구현하는 것과 연관된 펌웨어, 또는 기타 다른 전자 장치, 시스템 또는 구성과 같은 어떠한 전자적 처리 장치일 수 있음이 이해되어야 할 것이다.
컨텐트를 웹페이지의 형식으로 인터페이스를 통해 제시하고 반응하는 프로세스들의 예를 이하에서 보다 상세하게 설명하기로 한다. 이러한 예의 목적 상 하나 또는 그 이상의 처리 시스템(210) 각각은 서버이며, 웹 서버(210.1)와 인터페이스 서버(210.2)를 포함하여 서로 다른 두 가지 유형의 서버가 제공되는 것으로 가정한다. 일례로서, 상기 웹 서버(210.1)는 인터페이스 서버(210.2)를 제공하여 상기 컴퓨터 시스템(230)이 웹사이트에 대한 반응을 쉽게 하기 위한 인터페이스를 제시하는 한 편 상기 컴퓨터 시스템(230)이 접근하는 하나 또는 그 이상의 웹사이트들을 호스팅하여 사용자가 웹사이트에 접근할 수 있도록 한다. 상기 서버(210)는 일반적으로 처리 장치 소프트웨어를 실행하여, 관련된 행동들이 수행될 수 있도록 하며, 이 때 상기 서버(210)에 의해 수행되는 행동들은 메모리(301) 내에 어플리케이션 소프트웨어로 저장된 지시 및/또는 I/O 장치(302)를 통해 사용자로부터 수신한 입력에 따라 상기 프로세서(300)에 의해 수행된다. 상기 컴퓨터 시스템(230)에 의해 수행되는 행동 또한 메모리(401) 내에 어플리케이션 소프트웨어로 저장된 지시 및/또는 I/O 장치(402)를 통해 사용자로부터 수신한 입력에 따라 상기 프로세서(400)에 의해 수행되는 것으로 가정되어야 할 것이다.
하지만, 다음 예들을 설명할 목적으로 위에서 기술한 구성들은 본질적인 것은 아니며 다른 여러 구성들이 사용될 수 있음을 인식할 수 있을 것이다. 서로 다른 처리 시스템들 간의 기능성의 구분은 특정한 구현에 따라 달라 질 수 있음을 인식할 수 있을 것이다.
전통적인 웹 브라우징 프로세스와 쉬워진 웹 브라우징 프로세스의 기능성의 차이를 예시하는 개략도를 도 5A 및 5B를 참조하여 이하에서 보다 상세히 기술하기로 한다.
도 5A에 도시된 전통적인 어플리케이션에서는, 컴퓨터 시스템(230)에 의해 실행되는 브라우저 어플리케이션(501)이 키보드와 마우스(503) 및 음성 인식이 활성화되어 있는 경우에는 선택적으로 마이크(504)와 같은 입력 장치(502)로부터 입력을 수신한다. 이러한 브라우저는 사용자 입력을 해석하고 웹페이지를 가져 오기 위해 웹 서버(210.1)와 반응하며, 이러한 웹페이지는 이후 디스플레이되는 GUI(506) 및/또는 스피커(507)를 통한 출력(505)을 통해 제공될 수 있다.
이와는 반대로, 도 5B의 쉬워진 배치에서는, 상기 브라우저 어플리케이션(501)이 여전히 웹 서버(210.1)로부터 컨텐트를 획득하기는 하지만 입력 또는 출력을 가지는 인터페이스는 직접 획득하지 않는다. 그 대신, 상기 브라우저 어플리케이션(501)이 인터페이스 어플리케이션(511)로부터 입력을 수신하거나 이로 컨텐트를 제공하며 이는 일반적으로 동일한 컴퓨터 시스템(230)에 의해 처리되며, 다만 서로 다른 컴퓨터 시스템들을 사용할 수 있음도 인식할 수 있을 것이다. 상기 인터페이스 어플리케이션(511)은 키보드(503)와 마이크(504), 마우스, 터치스크린 등과 같은 입력 장치(502)로부터 입력을 수신하고 일반적으로 수정된 사용자 인터페이스(506) 및/또는 마이크(507)를 포함하는 출력 장치(505)를 통해 출력을 제공할 뿐만 아니라 상기 인터페이스 서버(210.2)와 통신하여 인터페이스 코드를 수신한다.
이에 따라, 위에 설명한 예에서, 웹 서버의 관점에서 볼 때 상기 호스팅 프로세스와 웹사이트 제공 프로세스가 변화하지 않도록 상기 브라우저 어플리케이션이 계속하여 웹 서버와의 반응의 유일한 포인트가 된다는 것을 인식할 수 있을 것이다. 하지만, 쉬워진 예에서는, 브라우저가 실제로 웹페이지를 디스플레이하거나 사용자 입력을 직접 수신하지 않는다. 그 대신에 모든 사용자 반응은 인터페이스 어플리케이션을 통하게 되며, 이에 따라 상기 반응은, 예를 들어 이를 시각적 장애를 가진 사용자 또는 핸드 프리 상황 등에 있는 사용자에게 보다 적절하게 함으로써, 반응이 보다 명확해 지도록 맞추어지게 된다.
웹페이지를 표시하는 프로세스의 예를 도 6A 내지 6C를 참조하여 이하에서 보다 상세하게 설명하기로 한다.
본 예에서, 단계 600에서 URL이 결정된다. 상기 URL은 하이퍼링크를 선택하거나 주소 입력에 수동으로 URL을 입력하는 등의 적절한 방식으로 결정된다. 상기 URL은, 예를 들어 브라우저 및 인터페이스 어플리케이션이 링크의 선택을 탐지하게 하거나, 사용자가 인터페이스 페이지에 URL을 입력하게 함으로써 상기 브라우저 어플리케이션(501) 및 상기 인터페이스 어플리케이션(511) 모두에 제공되며, 이를 통해 상기 인터페이스 어플리케이션(511)이 이를 상기 브라우저 어플리케이션(501)으로 전송할 수 있게 된다.
단계 602에서, 상기 브라우저 어플리케이션(501)은 상기 URL에 대한 반응으로 컨텐트 요청을 생성하여 상기 웹 서버(210.1)로 전송하여, 단계 604에서 상기 웹 서버(210.1)가 HTML 코드를 제공하도록 한다. 상기 브라우저 어플리케이션(501)은 다시 단계 606에서 HTML 코드를 파싱하여 객체 모델, 특히 DOM을 생성한다. 정상적인 조건 하에서는, 상기 브라우저 어플리케이션(501) 또한 CSS 스타일 객체 모델의 생성을 진행하고, 이어서 트리를 렌더링하여, 상기 브라우저가 상기 웹페이지를 포함하는 사용자 인터페이스를 렌더링하도록 할 것이다. 하지만 이 경우에는 이 단계가 요구되지 않는다는 것을 인식할 수 있을 것이다.
이와 동시에, 단계 608에서 상기 인터페이스 어플리케이션(511)은 인터페이스 요청을 생성하며, 이는 상기 인터페이스 서버(210.2)로 전송되어, 상기기 인터페이스 서버가 인터페이스 코드를 제공할 수 있도록 하며, 이는 본 명세서에서 이후로는 일반적으로 KML이라 부른다. 단계 612에서 상기 인터페이스 어플리케이션은 KML 코드를 파싱하고 디스플레이될 다음 인터페이스 페이지를 식별한다. 단계 614에서 상기 인터페이스 어플리케이션은 다음 인터페이스 페이지에 대해 객체 컨텐트가 요구되는지, 및 해당 프로세스가 단계 626로 나아갈 것인지를 결정한다.
그렇지 않은 경우에는, 단계 616에서, 상기 인터페이스 어플리케이션(511)이 KML 코드 내 지시를 기반으로 객체 요청을 생성하며, 이때 상기 객체 요청은 단계 618에서 상기 브라우저 어플리케이션(501)으로 전송된다. 단계 620에서 상기 브라우저 어플리케이션(501)은 객체 모델로부터 객체 컨텐트를를 결정하여, 단계 622에서 상기 컨텐트를 포함하는 객체 컨텐트 반응을 생성한다. 상기 객체 컨텐트 반응은 상기 인터페이스 어플리케이션(511)으로 전송되며, 단계 624에서 이를 수신하여, 이로부터 컨텐트를 추출하여 상기 인터페이스 페이지에 이를 배포하기 위해 사용한다.
상기 인터페이스 어플리케이션(511)은 다시 단계 626에서 그래픽적으로 또한/또는 단계 628에서 청취 가능한 프롬프트의 형태로 인터페이스 페이지를 제시하며, 이는 인터페이스 페이지로부터 읽어 주는 과정을 효과적으로 포함한다. 이전에 언급하였듯이, 상기 그래픽 인터페이스 페이지는 일반적으로 최소한의 정보를 포함하는 단순화된 페이지이며 이에 대한 예들을 이하에서 도 7A 내지 7F를 참조하여 보다 상세히 설명하기로 한다. 하지만, 일반적으로, 상기 인터페이스 페이지는 진술이나 질문과 같은 정보, 및 선택적으로 하나 또는 그 이상의 대응 옵션을 포함한다.
단계 630에서 하나 또는 그 이상의 사용자 입력이 제공되어, 사용자 반응이 상기 인터페이스 어플리케이션(511)에 의해 결정되도록 한다. 단계 632에서 상기 사용자 반응이, 예를 들어 웹사이트 링크의 선택을 통한 새로운 웹사이트 또는 웹페이지의 선택에 해당하는 것으로 결정되는 경우, 상기 프로세스는 단계 600으로 돌아가, 새로운 웹페이지가 요청되도록 한다. 그렇지 않은 경우, 단계 634에서, 상기 인터페이스 어플리케이션(511)이 사용자 입력의 결과로 KML 코드를 사용하는 웹페이지와의 반응이 발생하는지 결정한다. 예를 들어, 특정한 입력들이 단지 추가적인 인터페이스 페이지의 디스플레이만을 가져올 수 있으며 이 경우에는 해당 프로세스가 단계 608로 돌아가 다음 인터페이스가 제시되기 이전에에 다음 인터페이스 페이지에 해당하는 추가적인 KML 코드를 가져오도록 한다. 실제로는 추가적인 KML 코드를 가져오는 것이 다음 인터페이스 페이지에 대한 KML 코드를 이전의 인터페이스 요청의 일부로 미리 가져다 놓아 상기 인터페이스 어플리케이션에서 이미 사용 가능하도록 상기 인터페이스 서버(210.2)에 대한 추가적인 요청의 결과를 가져올 수도 있고 그렇지 않을 수도 있다는 것을 인식할 수 있을 것이다. 예를 들어, 상기 반응 어플리케이션은 이러한 반응의 초기 단계 동안 웹사이트 또는 웹페이지에 대한 반응에 요구되는 모든 KML 코드를 다운로드할 수 있다.
그렇지 않은 경우에, 상기 반응이 웹페이지에 대한 반응에 해당하는 것으로 결정되는 경우에는, 단계 636에서 상기 인터페이스 어플리케이션(511)이 KML 코드로부터 브라우저에 대한 지시를 가져 오며, 이때 상기 지시는 단계 638에서 제공된 사용자 입력을 기반으로 선택적으로 포맷된다. 예를 들어, 사용자가 웹페이지를 통해 정보를 제공하는 경우, 이러한 지시는 제출 버튼을 누르는 것과 같이 사용자가 제공한 관련된 텍스트 입력을 포함하여 브라우저 어플리케이션이 "겟(get)" 또는 "포스트(post)" 동작을 수행하도록 반응적 요소를 선택하는 것에 해당할 수 있을 것이다. 상기 지시는 단계 640에서 상기 브라우저 어플리케이션(501)으로 전송되며 이때 상기 브라우저 어플리케이션(501)은 단계 642에서 지시를 수신하고 단계 644에서 지시를 실행한다.
실행된 지시의 결과로 단계 646에서 웹 서버(210.1)에 대한 반응을 요구하지 않는 지역적 행동이 수행되는 경우에는, 상기 브라우저 어플리케이션(501)은, 예를 들어, 입력한 정보를 웹페이지의 객체 모델로 통합하기 위해, 단계 606에서 일반적으로 상기 객체 모델을 업데이트할 것이다. 따라서, 사용자가 웹페이지 상의 텍스트 박스에 값을 입력하는 것이 요구되는 경우, 상기 지시는 객체 모델 내의 해당 값을 사용자가 제공한 관련된 텍스트 입력으로써 업데이트할 수 있을 것이다. 이와는 대조적으로, 상기 반응의 결과로 지역적이지 않은 행동이 수행되는 경우에, 이는 일반적으로 브라우저 어플리케이션(501)이 단계 602에서 브라우저 요청을 생성하도록 하는 것을 포함하며, 이는 웹 서버(210.1)로 제공되어 단계 604에서 추가적인 HTML 코드가 제공되는 등의 반응을 허용한다. 이와 동시에, 상기 인터페이스 어플리케이션(511)이 단계 608로 돌아가, 요구되는 경우 위에서 기술한 것과 같이 다음 인터페이스 페이지가 제시되기 전에 추가적인 KML 코드를 가져오도록 한다.
따라서 웹페이지에 대한 각 반응은 각각의 인터페이스 페이지를 제시함으로써 수행되어, 사용자가 이에 대한 반응을 제공하여 다음 인터페이스 페이지가 디스플레이되기 전에 반응을 촉발하도록 사용될 수 있다는 것을 인식할 수 있을 것이다.
이에 대한 예를 도 7A 내지 7F에 도시된 예시적 인터페이스 컨텐트를 참조하여 이하에서 설명하기로 한다. 본 예에서, 사용자가 보고 있는 컨텐트는 한 도시 내에서 사용 가능한 운송 서비스에 관한 정보를 제공하는 여행 웹사이트에 해당한다.
사용자가 초기에 이 웹사이트로 찾아 가면, 이 사용자에게 도 7A에 도시된 것과 같은 사용자 인터페이스가 제시될 수 있다. 본 예에서, 상기 사용자 인터페이스(700)는 다수의 메뉴 옵션을 포함하며, 본 예에서는 "열기", "돌아가기", "닫기" 및 "도움말"과 같은 일반적인 행동에 해당하는 제어 입력(701, 702, 703, 704)을 포함한다. 이러한 명령들은 모두 메뉴 옵션에서 제공될 수 있을 것이며, 이들은 인터페이스 페이지에 걸쳐 일관되게 제공되어, 사용자가 보다 쉽게 일상적인 행동을 수행할 수 있을 것이라는 것을 인식할 수 있을 것이다.
추가적으로, 상기 인터페이스는 컨텐트를 사용자에게 디스플레이하는 윈도우(710)를 포함한다. 상기 컨텐트는 KML 코드 내의 지시를 기반으로 브라우저 어플리케이션(501)으로부터 가져온 웹페이지 컨텐트뿐만 아니라 KML 코드에서 규정된 정의된 인터페이스 컨텐트를 혼합하여 포함할 수 있다.
첫 번째 예에서, 사용자가 초기에 전송 서비스 페이지로 찾아가게 되면, 이 사용자에게 사용자가 어떠한 태스크를 수행하려고 하는지를 물어보는 질문(711)이 제시된다. 이 경우에, 해당 웹페이지와 연관되어 정의되어 있는 네 개의 가능한 태스크들이 연관된 옵션(712)과 함께 표시되어 사용자가 음성 명령을 사용하여, 또는 GUI를 통한 선택에 의해 이들 중 하나를 선택할 수 있도록 한다. 이 경우에, 질문에 이어 적절한 입력이 이어지며, 이 경우에는 "여행 플래너", "타임 테이블", "요금" 및 "서비스 중단"을 포함하는 네 개의 옵션이 포함되며, 다면 폭 넓은 범위의 서로 다른 옵션들이 정의될 수 있다는 것을 인식할 수 있을 것이다.
이러한 반응 옵션을 배포하는 상기 컨텐트는 웹사이트로부터 획득할 수 있으나 보다 일반적으로는 인터페이스 코드를 생성하는 오퍼레이터에 의해 정의되며, 인터페이스를 디스플레이하기 위한 KML 코드의 예는 다음과 같다:
<INTERFACE MAIN>
<CONTENT> 어떠한 태스크를 수행하시겠습니까? </CONTENT>
<RESPONSE> 여행 플래너 </RESPONSE>
<ACTION> 플래너 페이지 1을 디스플레이 </ACTION>
<RESPONSE> 타임테이블 </RESPONSE>
<RESPONSE> 요금 </RESPONSE>
<RESPONSE> 서비스 중단 </RESPONSE>
</INTERFACE MAIN>
이러한 인터페이스는 일반적으로 도 7A에 도시된 것과 같이 그래픽으로 디스플레이될 것이며, 연관된 텍스트를 읽어 줌으로써 청취 가능한 방식으로 표현되는데, 예를 들어 질문을 읽고 이어서 각각의 반응 옵션을 연관된 번호와 함께 읽어서 사용자가 적절한 번호를 선택하거나, "여행 플래너", "플래너", "나의 여행을 계획 " 또는 각 옵션에 대해 KML에서 정의된 다른 문구들을 말하는 방식과 같이 또 다른 적절한 입력을 제공함으로써 선택을 할 수 있게 한다. 이러한 반응은 또한 키보드 또는 기타 적절한 인터페이스를 사용하여 특정될 수 있다.
예를 들어, 사용자가 여행 플래너를 사용하기를 원한다고 가정하면, 사용자는 대응 옵션 "1"을 선택하게 된다. 상기 KML 코드는 다시 각각의 선택된 옵션에 대해 취할 행동을 정의하며, 이 경우에는 도 7B에 도시된 것과 같이 사용자가 텍스트 입력 박스(714)를 통해 시작 위치(713)를 입력하는 것에 대한 요청을 포함하여 인터페이스 페이지 "플래너 페이지 1"이 디스플레이되도록 한다. 시작 위치를 정의하기 위한 텍스트는 키보드를 사용하여 또는 말을 통해 제공될 수 있다.
일례로서, 시작 위치가 제공됨에 따라, 웹페이지가 자동 완성 기능을 수행하고, 적절한 시작 위치들의 드롭다운 목록을 표시할 수 있다. 웹사이트가 이러한 방식으로 작동하는 경우, 도 7C에 도시한 것과 같이 가능한 시작 위치를 반환하면서 사용자가 입력하는 텍스트가 웹사이트 상의 해당 필드를 통해 제출되도록 하기 위해 브라우저에 대한 지시들이 생성될 수 있을 것이다. 본 예에서, 부분적으로 완성된 텍스트 입력 항목 박스(714)는 아래 표시되는 것과 같이 가능한 다수의 반응 옵션(715)을 가지며, 사용자가 이 중 하나를 선택하여 텍스트 입력 과정을 완수할 수 있게 해 준다. 유사한 방식으로서, 사용자는 도 7D과 7E에 도시된 것과 같이 목적지와 출발 시간을 입력할 수 있다.
각각의 시작 목적지와 시간 필드가 완성됨에 따라, 완전한 폼이 웹 서버(210.1)로 제출되기 이전에 인터페이스 어플리케이션(511)으로부터의 지시를 기반으로 이러한 정보가 웹 브라우저 어플리케이션(501)에 의해 웹페이지 상에 채워질 수 있다. 상기 웹 서버(210.1)는 이 후 일반적으로 웹 브라우저 어플리케이션(501)으로 제공되어 브라우저 어플리케이션(501)이 관련된 DOM을 생성하게 해 주는 여행 계획을 포함하는 웹페이지를 생성한다. DOM을 구성하고 나면, 상기 사용자 인터페이스 어플리케이션(511)은 웹페이지의 여행 계획 객체로부터 컨텐트를 요청할 것이며, 이는 브라우저 어플리케이션(501)에 의해 반환되어, 상기 컨텐트가 파싱되어 디스플레이될 준비를 하게 된다. 이러한 면에서, 컨텐트는 종종 웹사이트상에 그래픽으로 디스플레이되며, 따라서 도 7F 에 도시된 것과 같이 반환되는 컨텐트 내에 포함되는 아이콘과 같은 그래픽 요소들을 이에 해당하는 문장으로 대체할 수 있다.
이에 따라, 위에서 기술한 프로세스에서, 인터페이스 어플리케이션이 병렬로 인터페이스를 디스플레이하고 인터페이스 서버(210.2)가 제공하는 KML 코드를 기반으로 사용자 입력을 해석하면서도, 웹페이지에 대한 반응이 웹 서버(210.1)가 제공하는HTML 코드를 기반으로 브라우저 어플리케이션에 의해 수행된다는 것을 인식할 수 있을 것이다.
인터페이스 코드를 생성하기 위한 프로세서의 예를 도 8A 내지 8C를 참조하여 보다 상세히 설명하기로 한다.
본 예가 오퍼레이터가 수동으로 인터페이스 코드를 생성하는 것에 중점을 두고 있기는 하지만, 유사한 자동화된 절차가 수행될 수 있다는 것을 인식할 수 있을 것이며, 수동 절차를 참조하는 것이 본 발명을 제한하려는 의도는 아니다.
본 예에서, 단계 800에서 웹사이트 컨텐트가 분석되어 이전의 예에서와 같은 여행 플래너, 타임테이블, 요금 및 서비스 중단 태스크와 같은 수행될 수 있는 여러 태스크들을 확인한다. 이를 이어, 단계 805에서 새로운 태스크가 선택되며, 단계 810에서 이를 분석하여 사용자가 태스크를 완수하기 위해 수행할 필요가 있는 전형적인 반응들의 시퀀스를 결정한다. 이러한 반응들의 시퀀스는 일반적으로 이전의 예에서와 같은 출발 위치, 목적지 위치, 출발 시간과 일자 입력 및 결과 출력과 같은 정보의 디스플레이, 선택의 수행 및/또는 입력 단계를 포함한다.
단계 815에서, 생성될 다음 인터페이스 페이지가 선택되며, 이는 오퍼레이터가 수동으로 정의한다. 이 단계의 일부로서, 단계 820에서 인터페이스 템플릿들의 목록이 표시되어 단계 825에서 사용자가 이들 중 적절한 하나를 선택할 수 있도록 할 수 있다. 따라서, 예를 들어, 여행 플래너 시퀀스의 경우에, 첫 페이지 이후의 다음 인터페이스 페이지는 텍스트 입력 필드에 해당하며 이에 따라 사용자가 텍스트 입력 템플릿을 선택할 수 있다. 이러한 템플릿은 다시 단계 830에서 요구되는 대로 수정될 수 있으며, 예를 들어 사용자가 필드 이름을 입력하고, 추가적인 텍스트 입력 필드를 추가하고, 서로 다른 반응 옵션과 연관된 문구 등과 같은 음성 인식 규칙을 정의할 수 있게 한다.
이 과정 중에, 오퍼레이터는 단계 835에서 웹페이지로부터의 컨텐트가 디스플레이될 필요가 있는지를 결정하며, 필요가 있는 경우에, 오퍼레이터는 단계 840에서 웹페이지의 HTML 코드를 분석하고 관련된 컨텐트를 포함하는 객체를 식별할 수 있다. 이후, 단계 845에서 사전에 정의된 객체 요청들의 목록이 디스플레이되어 사용자가 단계 850에서 적절한 객체 요청을 선택하고 선택적으로 수정할 수 있도록 할 수 있으며, 예를 들어 특정한 객체 코드를 HTML 내의 이에 해당하는 태그를 참조하여 정의할 수 있다.
이 단계에 이어, 단계 855에서 텍스트를 입력하거나 여러 반응 옵션 중 하나를 선택하는 등의 가능한 사용자 반응들이 식별된다. 단계 860에서 사전에 정의된 반응들의 목록이 디스플레이되어 단계 865에서 오퍼레이터가 반응을 선택 및/또는 수정하도록 할 수 있다. 따라서, 예를 들어, 이는 텍스트 입력 항목 필드가 입력 텍스트에 어떻게 반응하는지를 결정하는 것을 포함할 수 있다.
이 단계가 완료되면, 단계 870에서 현재의 인터페이스 페이지에 대해 인터페이스 코드가 생성될 수 있다. 상기 인터페이스 코드는 각각의 템플릿에 대해 정의된 코드, 컨텐트 요청 및 반응을 기반으로 할 것이며, 상기 코드는 요청되는 경우에는 사용자가 입력한 관련된 맞춤형 구성에 의해 배포될 것이며, 예를 들어 필드의 이름이나 반응 옵션의 상세 사항, 음성 인식 반응 규칙 등이 있다. 이러한 접근 방식을 통해 관련된 인터페이스 페이지를 제시하기 위한 인터페이스 코드가 템플릿, 반응 등의 적절한 조합을 선택하는 단계 이외에는 오퍼레이터의 입력이 있다고 해도 거의 없이 실질적으로 자동화된 방식으로 생성될 수 있다는 것을 인식할 수 있을 것이다.
단계 875에서 현재의 태스크에 대한 일련의 반응들을 완성하기 위해 추가적인 인터페이스 페이지들이 요구되는지가 결정되며, 이들이 요구되는 경우에는, 상기 과정이 단계 815로 돌아 간다. 그렇지 않은 경우에는, 태스크가 단계 880에서 정의될 필요가 있는지가 결정되며, 이러한 필요가 있는 경우에는, 상기 과정이 단계 805로 돌아 간다. 그렇지 않은 경우에는, 서로 다른 인터페이스 페이지들에 대한 인터페이스 코드가 결합되어 단계 885에서 최종적인 KML 코드를 형성한다.
위에서 설명한 예는 따라서 KML 코드가 구축되게 해 주는 메카니즘을 제공하는 것으로 이해되어야 할 것이다. 템플릿이나 지침과 같이 사전에 정의된 자료를 사용하면 인터페이스를 보다 일관된 양식으로 제시하면서도 생성 과정을 크게 단순화시키게 되며, 이는 사용자가 컨텐트를 쉽게 찾아 다니고 이해할 수 있게 해 주는데 매우 중요하다.
본 명세서 및 이어지는 청구항에 걸쳐, 맥락 상 다르게 요구되는 경우를 제외하고, 단어 "포함하는" 및 "포함하고" 또는 "포함하고 있는"과 같은 변형된 표현은 기술된 정수 또는 정수의 그룹 또는 단계들을 포함하되 다른 정수 또는 정수들의 그룹을 배제하지는 않는 것을 의미하는 것으로 이해되어야 할 것이다.
해당 분야에 숙련된 기술자라면 다양한 변경과 수정이 가능할 것이라는 것을 인식할 것이다. 숙련된 기술자라면 인식할 수 있는 이러한 모든 변경과 수정은 본 발명에서 상기 광범위하게 기술한 사상과 범위 내에 있는 것으로 간주되어야 한다.

Claims (32)

  1. 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위한 방법으로서, 상기 방법은, 적절하게 프로그래밍된 컴퓨터 시스템 내에서,
    a) 브라우저 어플리케이션을 사용하여
    i) 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트 코드를 획득하는 단계로서, 이 때 상기 컨텐트 코드는 컨텐트를 나타내며;
    ii) 상기 컨텐트 코드로부터 컨텐트를 지시하는 객체 모델을 구성하는 단계로서, 상기 객체 모델은 다수의 객체들을 포함하고 각 객체는 연관된 객체 컨텐트를 가지며, 컨텐트가 브라우저 어플리케이션에 표시될 수 있도록 상기 객체 모델을 사용할 수 있으며;
    b) 인터페이스 어플리케이션을 사용하여
    i) 인터페이스 서버로부터 적어도 부분적으로는 컨텐트 주소에 따라 인터페이스 코드를 획득하는 단계;
    ii) 상기 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하는 단계;
    iii) 사용자 인터페이스를 상기 인터페이스 코드 및 요구되는 객체 컨텐트에 따라 사용자에게 제시하는 단계로서, 상기 인터페이스는 적어도 부분적으로는
    (1) 객체 컨텐트의 적어도 일부; 및,
    (2) 적어도 하나의 사용 가능한 사용자 입력 중 적어도 하나를 나타내며;
    iv) 상기 인터페이스의 제시에 대한 반응으로 적어도 하나의 사용자 입력을 결정하는 단계; 및,
    v) 상기 사용자 입력 및 인터페이스 코드에 따라 브라우저에 대한 지시를 생성하는 단계; 및,
    c) 상기 브라우저 어플리케이션을 사용하여 브라우저에 대한 지시를 실행하여 이에 의해 상기 컨텐트와 반응하는 단계를 포함하는 방법.
  2. 제 1항에 있어서, 상기 인터페이스 코드는 다수의 인터페이스 페이지들을 정의하며, 상기 방법은 여러 개의 인터페이스 페이지들을 시퀀스로 제시하여 이에 의해 태스크가 수행되도록 하는 것을 포함하는 것을 특징으로 하는 방법
  3. 제 2항에 있어서, 상기 방법은 상기 인터페이스 어플리케이션에서
    a) 인터페이스 페이지를 제시하는 단계;
    b) 제시된 인터페이스 페이지에 대한 응답으로 적어도 하나의 사용자 입력을 결정하는 단계;
    c) 적어도 하나의 사용자 입력 및 상기 인터페이스 코드에서 정의된 인터페이스 페이지들의 시퀀스에 따라 적어도 부분적으로 다음 인터페이스 페이지를 선택하는 단계; 및,
    d) 다음 인터페이스 페이지를 사용자에게 제시하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서, 상기 방법은 상기 인터페이스 어플리케이션에서
    a) 인터페이스 페이지에 대해 요구되는 객체 컨텐트를 인터페이스 코드에 따라 결정하는 단계;
    b) 요구되는 객체 컨텐트를 획득하는 단계; 및,
    c) 요구되는 객체 컨텐트를 사용하여 상기 인터페이스 페이지를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 4항에 있어서, 상기 방법은
    a) 상기 인터페이스 어플리케이션에서
    i) 상기 인터페이스 코드를 사용하여 요구되는 객체 컨텐트를 결정하는 단계;
    ii) 요구되는 객체 컨텐트를 지시하는 객체 요청을 생성하는 단계; 및,
    iii) 브라우저 어플리케이션에 대한 객체 요청을 제공하는 단계; 및,
    b) 상기 브라우저 어플리케이션에서
    i) 상기 객체 요청을 수신하는 단계;
    ii) 요구되는 객체 컨텐트를 결정하는 단계;
    iii) 요구되는 객체 컨텐트를 지시하는 객체 컨텐트 반응을 생성하는 단계; 및,
    c) 상기 인터페이스 어플리케이션에 대한 반응으로 상기 객체 컨텐트를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서, 상기 인터페이스 코드는 적어도 하나의 인터페이스 페이지에 대한 템플릿을 정의하며, 상기 방법은 요구되는 객체 컨텐트를 사용하여 템플릿을 생성 배포함으로써 다음 사용자 인터페이스 페이지를 생성하는 단계를 포함하는 것을 특징으로 하는 방법
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서, 상기 객체 컨텐트는 다수의 컨텐트 항목들을 포함하며, 상기 방법은 상기 인터페이스 어플리케이션에서
    a) 상기 인터페이스 코드를 사용하여 적어도 하나의 컨텐트 항목에 해당하는 하나 또는 그 이상의 인터페이스 항목을 식별하는 단계; 및,
    b) 상기 인터페이스 항목을 사용하여 다음 인터페이스 페이지를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서, 상기 방법은 다음 인터페이스 페이지가 생성될 때 청취 가능한 신호를 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 1항 내지 제 8항 중 어느 한 항에 있어서, 상기 인터페이스 페이지들은 컨텐트의 구조에 따라 계층적으로 배치되는 것을 특징으로 하는 방법.
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서, 적어도 하나의 인터페이스 페이지는 각각의 반응 및 하나 또는 그 이상의 반응 대응 옵션을 지시하며, 상기 방법은 인터페이스 어플리케이션에서
    a) 사용자가 입력한 명령에 따라 상기 반응 대응 옵션 중 하나의 선택을 결정하는 단계; 및,
    b) 상기 선택된 반응 대응 옵션을 사용하여
    i) 다음 인터페이스 페이지를 선택하는 단계; 및,
    c) 생성될 브라우저에 대한 지시를 결정하는 단계 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서, 상기 인터페이스 코드는
    a) 생성될 브라우저에 대한 지시를 정의하는 것;
    b) 다수의 반응 옵션 각각에 대해 각각의 브라우저에 대한 지시를 정의하는 것;
    c) 브라우저에 대한 지시를 생성하기 위한 스크립트를 포함하는 것; 및,
    d) 브라우저에 대한 지시를 정의하는 스크립트를 포함하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서, 상기 사용자 인터페이스는
    a) 들을 수 있는 방식;
    b) 볼 수 있는 방식;
    c) 시각적으로 단순화된 형식;
    d) 다른 단일 색상의 배경에 단일 색상 폰트를 사용;
    e) 어두운 배경에 밝은 폰트를 사용;
    f) 밝은 배경에 어두운 폰트를 사용;
    g) 높은 대조의 색상 체계를 사용; 및,
    매우 큰 폰트를 사용하는 것 중 적어도 하나의 방식으로 제시되는 것을 특징으로 하는 방법.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서, 상기 컨텐트 주소는 URL(Universal Resource Locator)이며 상기 컨텐트 코드는 HTML 코드를 포함하는 것을 특징으로 하는 방법.
  14. 제 1항 내지 제 13항 중 어느 한 항에 있어서, 상기 객체 모델은
    a) 문서 객체 모델(DOM); 및,
    b) 스타일 모델 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  15. 제 1항 내지 제 14항 중 어느 한 항에 있어서, 상기 반응은
    a) 행동이 가능한 요소를 선택하는 것;
    b) 컨텐트를 수정하는 것;
    c) 폼을 컨텐트 서버로 제출하는 것;
    d) 사용자 입력을 컨텐트 서버로 제출하는 것; 및,
    컨텐트 서버로부터 추가적인 컨텐트를 요청하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  16. 제 1항 내지 제 15항 중 어느 한 항에 있어서, 상기 방법은 상기 브라우저 어플리케이션을 활용하여
    a) 컨텐트 주소를 포함하는 컨텐트 요청을 생성하는 단계; 및,
    b) 컨텐트 서버에 컨텐트 요청을 제공하는 단계로서, 상기 컨텐트 서버는 컨텐트 코드를 제공하기 위해 상기 컨텐트 요청에 반응적인 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 1항 내지 제 16항 중 어느 한 항에 있어서, 상기 방법은 상기 인터페이스 어플리케이션을 사용하여
    a) 상기 컨텐트 주소를 포함하는 인터페이스 코드 요청을 생성하는 단계; 및,
    b) 인터페이스 서버로 인터페이스 코드 요청을 제공하는 단계로서, 상기 인터페이스 서버는 상기 인터페이스 코드를 제공하기 위해 상기 인터페이스 코드 요청에 반응적인 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제 1항 내지 제 17항 중 어느 한 항에 있어서, 상기 인터페이스 코드는 마크업 언어 코드를 포함하는 것을 특징으로 하는 방법.
  19. 제 1항 내지 제 18항 중 어느 한 항에 있어서, 상기 방법은 적어도 부분적으로는 컨텐트에 대한 반응의 분석을 통해 인터페이스 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제 19항에 있어서, 상기 방법은
    a) 컨텐트를 분석하여
    i) 수행될 적어도 하나의 반응; 및
    ii) 사용자에게 제시될 적어도 일부 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이되도록 하기 위해 사용될 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트를 식별하는 단계;
    b) 사용자에게 제시될 사용자 인터페이스를 생성하는 단계로서, 상기 사용자 인터페이스는
    i) 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및,
    ii) 인터페이스의 제시에 대한 대응으로 제공할 수 있는 적어도 하나의 사용자 입력을 지시하는 것인 단계;
    c) 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하는 단계; 및,
    d) 사용자 인터페이스 및 상기 브라우저에 대한 지시단계를 지시하는 인터페이스 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  21. 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위한 시스템으로서, 상기 시스템은 적절하게 프로그래밍된 컴퓨터 시스템을 포함하며, 상기 컴퓨터 시스템은
    a) 브라우저 어플리케이션을 사용하여
    i) 컨텐트 주소에 따라 컨텐트 서버로부터 컨텐트를 나타내는 컨텐트 코드를 획득하고;
    ii) 상기 컨텐트 코드로부터의 상기 컨텐트를 지시하는 객체 모델을 구성하며, 이때 상기 객체 모델은 다수의 객체들을 포함하고 각 객체는 연관된 객체 컨텐트를 가지고, 상기 객체 모델은 컨텐트가 상기 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 사용할 수 있으며;
    b) 인터페이스 어플리케이션을 사용하여
    i) 인터페이스 서버로부터 적어도 부분적으로 상기 컨텐트 주소에 따라 인터페이스 코드를 획득하고;
    ii) 상기브라우저 어플리케이션으로부터 요구되는 객체 컨텐트가 있으면 이를 획득하며;
    iii) 인터페이스 코드 및 요구되는 객체 컨텐트에 따라 사용자에게 사용자 인터페이스를 제시하고, 이때 상기 인터페이스는
    (1) 적어도 일부의 객체 컨텐트; 및,
    (2) 적어도 하나의 사용 가능한 사용자 입력 중 적어도 하나를 적어도 부분적으로 지시하며;
    iv) 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고;
    v) 사용자 입력 및 인터페이스 코드에 따라 브라우저에 대한 지시를 생성하며;
    c) 브라우저 어플리케이션을 사용하여 브라우저에 대한 지시를 실행하여 이에 의해 상기 컨텐트와 반응하는 것을 특징으로 하는 시스템.
  22. 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위해 사용할 수 있는 인터페이스 코드를 생성하는 방법으로서, 상기 방법은 적절하게 프로그래밍된 컴퓨터 시스템 내에서
    a) 컨텐트를 분석하여
    i) 사용자에게 제시될 적어도 일부의 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 하기 위해 사용할 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트; 및,
    ii) 수행될 적어도 하나의 반응을 식별하는 단계;
    b) 사용자에게 제시할 사용자 인터페이스를 생성하는 단계로서, 상기 사용자 인터페이스는
    i) 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및,
    ii) 적어도 하나의 사용 가능한 사용자 입력을 지시하는 단계;
    c) 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하는 단계; 및,
    d) 상기 사용자 인터페이스 및 상기 브라우저에 대한 지시를 지시하는 인터페이스 코드를 생성하는 단계로서, 상기 인터페이스 코드는 인터페이스 어플리케이션에 의해 실행될 수 있으며 이를 통해 상기 인터페이스 어플리케이션이
    i) 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하고;
    ii) 상기 사용자 인터페이스를 사용자에게 제시하며;
    iii) 상기 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고;
    iv) 사용자 입력에 따라 브라우저에 대한 지시를 결정하며;
    v) 브라우저 어플리케이션에 브라우저에 대한 지시를 제공하여 상기 브라우저 어플리케이션이 상기 브라우저에 대한 지시를 실행하고 이에 따라 상기 컨텐트와 반응 하도록 하는 단계를 포함하는 방법.
  23. 제 22항에 있어서, 상기 방법은
    a) 컨텐트를 분석하여 사용자에게 제시될 객체 컨텐트를 식별하고;
    b) 상기 객체 컨텐트를 포함하는 객체를 식별하고;
    c) 식별된 객체 및 객체 컨텐트에 따라 객체 요청을 정의하고;
    d) 객체 요청에 따라 인터페이스 코드를 생성함으로써 인터페이스 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  24. 제 23항에 있어서, 상기 방법은
    a) 사전에 정의된 객체 요청들의 목록을 표시하고, 이때 사전에 정의된 객체 요청 각각은 연관된 사전에 정의된 코드를 가지며;
    b) 적어도 하나의 사전에 정의된 객체 요청을 선택하고;
    c) 상기 연관된 사전에 정의된 코드를 사용하여 상기 인터페이스 코드를 생성함으로써 상기 객체 요청을 정의하는 단계를 포함하는 것을 특징으로 하는 방법.
  25. 제 22항 내지 제 24항 중 어느 한 항에 있어서, 상기 방법은
    a) 다음에서
    i) 객체 컨텐트를 제공하고;
    ii) 사용 가능한 사용자 입력들을 제공하는 것 중 적어도 하나에 대한 템플릿을 생성하고,
    b) 상기 템플릿에 따라 인터페이스 코드를 생성함으로써 인터페이스를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  26. 제 25항에 있어서, 상기 방법은
    a) 각각의 사전에 정의된 템플릿이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 템플릿들의 목록을 디스플레이하고;
    b) 적어도 하나의 사전에 정의된 템플릿을 선택하고;
    c) 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 하나 또는 그 이상의 인터페이스 항목들을 정의하는 단계를 포함하는 것을 특징으로 하는 방법.
  27. 제 22항 내지 제 26항 중 어느 한 항에 있어서, 상기 객체 컨텐트는 다수의 컨텐트 항목들을 포함하며, 상기 방법은
    a) 컨텐트 항목을 선택하는 단계;
    b) 상기 선택된 컨텐트 항목에 해당하는 인터페이스 항목을 정의하는 단계; 및,
    c) 상기 인터페이스 항목에 따라 인터페이스 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  28. 제 27항에 있어서, 상기 방법은
    a) 각각의 사전에 정의된 인터페이스 항목이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 인터페이스 항목들의 목록을 디스플레이하고;
    b) 적어도 하나의 사전에 정의된 인터페이스 항목을 선택하고;
    c) 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 하나 또는 그 이상의 인터페이스 항목들을 정의하는 단계를 포함하는 것을 특징으로 하는 방법.
  29. 제 22항 내지 제 28항 중 어느 한 항에 있어서, 상기 인터페이스 코드는
    a) 컨텐트에 대해 가능한 반응을 식별하고;
    b) 하나 또는 그 이상의 가능한 반응들에 대한 지시를 결정하고;
    c) 상기 지시를 사용하여 인터페이스 코드를 생성함으로써 생성되는 것을 특징으로 하는 방법.
  30. 제 29항에 있어서, 상기 인터페이스 코드는
    a) 각각의 사전에 정의된 반응이 이와 연관된 사전에 정의된 코드를 가지는 사전에 정의된 반응들의 목록을 디스플레이하고;
    b) 컨텐트에 대해 가능한 반응들에 따라 적어도 하나의 사전에 정의된 반응을 선택하고;
    c) 상기 연관된 사전에 정의된 코드를 사용하여 인터페이스 코드를 생성함으로써 생성되는 것을 특징으로 하는 방법.
  31. 제 22항 내지 제 30항 중 어느 한 항에 있어서, 상기 인터페이스 코드는
    a) 하나 또는 그 이상의 각각의 태스크를 나타내는 반응들의 시퀀스를 결정하고;
    b) 상기 시퀀스에 따라 인터페이스 코드를 생성함으로써 생성되는 것을 특징으로 하는 방법.
  32. 1) 컴퓨터 시스템이 제시하는 컨텐트에 대한 사용자 반응을 쉽게 하기 위해 사용할 수 있는 인터페이스 코드를 생성하기 위한 시스템으로서,
    a) 컨텐트를 분석하여
    i) 사용자에게 제시될 적어도 일부의 객체 컨텐트로서, 상기 컨텐트가 브라우저 어플리케이션에 의해 디스플레이될 수 있도록 하기 위해 사용할 수 있는 객체 모델 내 객체의 일부를 형성하는 객체 컨텐트; 및,
    ii) 수행될 적어도 하나의 반응을 식별하고;
    b) 사용자에게 제시할 사용자 인터페이스를 생성하며, 상기 사용자 인터페이스는
    i) 사용자에게 제시될 객체 컨텐트의 적어도 일부; 및,
    ii) 적어도 하나의 사용 가능한 사용자 입력을 지시하고;
    c) 브라우저 어플리케이션이 적어도 하나의 반응을 구현하도록 하기 위해 브라우저에 대한 지시를 생성하고;
    d) 상기 사용자 인터페이스 및 상기 브라우저에 대한 지시를 지시하는 인터페이스 코드를 생성하며, 상기 인터페이스 코드는 인터페이스 어플리케이션에 의해 실행될 수 있으며 이를 통해 상기 인터페이스 어플리케이션이
    i) 브라우저 어플리케이션으로부터 요구되는 객체 컨텐트를 획득하고;
    ii) 상기 사용자 인터페이스를 사용자에게 제시하며;
    iii) 상기 인터페이스의 제시에 대한 대응으로 적어도 하나의 사용자 입력을 결정하고;
    iv) 사용자 입력에 따라 브라우저에 대한 지시를 결정하며;
    v) 브라우저 어플리케이션에 브라우저에 대한 지시를 제공하여 상기 브라우저 어플리케이션이 상기 브라우저에 대한 지시를 실행하고 이에 따라 상기 컨텐트와 반응 하도록 하는 적절하게 프로그래밍된 컴퓨터 시스템을 포함하는 시스템.
KR1020197024910A 2017-01-23 2017-12-22 쉬워진 사용자 반응 KR20200034660A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2017900198 2017-01-23
AU2017900198A AU2017900198A0 (en) 2017-01-23 Facilitated User Interaction
PCT/AU2017/051447 WO2018132863A1 (en) 2017-01-23 2017-12-22 Facilitated user interaction

Publications (1)

Publication Number Publication Date
KR20200034660A true KR20200034660A (ko) 2020-03-31

Family

ID=62907464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197024910A KR20200034660A (ko) 2017-01-23 2017-12-22 쉬워진 사용자 반응

Country Status (6)

Country Link
US (1) US10789053B2 (ko)
EP (1) EP3571575A4 (ko)
KR (1) KR20200034660A (ko)
AU (1) AU2017394778A1 (ko)
CA (1) CA3050976A1 (ko)
WO (1) WO2018132863A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789053B2 (en) 2017-01-23 2020-09-29 Alkira Software Holdings Pty Ltd. Facilitated user interaction
US20210397682A1 (en) * 2018-10-08 2021-12-23 Alkira Software Holdings Pty Ltd. Secure Service Interaction
FR3097070B1 (fr) * 2019-06-05 2022-06-10 Amadeus Sas Système et procédé pour l’extraction de données cibles, basée sur un navigateur
CN113468455B (zh) * 2021-06-29 2023-06-30 网易(杭州)网络有限公司 用户选择行为获取方法、装置、客户端以及服务端设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887139A (en) * 1996-08-19 1999-03-23 3Com Corporation Configurable graphical user interface useful in managing devices connected to a network
US6665642B2 (en) * 2000-11-29 2003-12-16 Ibm Corporation Transcoding system and method for improved access by users with special needs
EP1407432B1 (en) * 2001-05-02 2007-08-22 Virtual Access Limited Secure payment method and system
WO2003085624A1 (en) * 2002-04-05 2003-10-16 Unbounded Access Ltd. Networked accessibility enhancer system
US20070055938A1 (en) * 2005-09-07 2007-03-08 Avaya Technology Corp. Server-based method for providing internet content to users with disabilities
US20110197124A1 (en) * 2010-02-05 2011-08-11 Bryan Eli Garaventa Automatic Creation And Management Of Dynamic Content
IL214468A (en) * 2011-08-04 2016-07-31 Amihai Miron Website Accessibility and Advertising Automation
WO2013025193A1 (en) * 2011-08-14 2013-02-21 Savnor Technologies Llc Web content capturing, packaging distribution
US8607251B1 (en) 2011-09-21 2013-12-10 Google Inc. Dynamic accessibility behavior
US20160306784A1 (en) 2015-04-16 2016-10-20 Audioeye, Inc. Audio Onboarding Of Digital Content With Enhanced Audio Communications
US10789053B2 (en) 2017-01-23 2020-09-29 Alkira Software Holdings Pty Ltd. Facilitated user interaction

Also Published As

Publication number Publication date
WO2018132863A1 (en) 2018-07-26
US10789053B2 (en) 2020-09-29
EP3571575A4 (en) 2020-12-30
US20190384582A1 (en) 2019-12-19
EP3571575A1 (en) 2019-11-27
AU2017394778A1 (en) 2019-09-12
CA3050976A1 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
CN108351871B (zh) 通用翻译
US9268753B2 (en) Automated addition of accessiblity features to documents
JP3959180B2 (ja) 通信翻訳装置
US8196104B2 (en) Systems and methods for testing application accessibility
US9384183B2 (en) Method and system for reporting web standard non-compliance of web pages
KR101781557B1 (ko) 텍스트 입력을 용이하게 하기 위한 방법 및 시스템
US20160306784A1 (en) Audio Onboarding Of Digital Content With Enhanced Audio Communications
US10789053B2 (en) Facilitated user interaction
US20140115459A1 (en) Help system
US20200111491A1 (en) Speech enabled user interaction
Leonidis et al. Rapid prototyping of adaptable user interfaces
US20060236253A1 (en) Dialog user interfaces for related tasks and programming interface for same
KR20120131480A (ko) 단어 학습 서비스 제공 시스템 및 방법
CN116701811B (zh) 一种网页处理方法、装置、设备及计算机可读存储介质
US10810273B2 (en) Auto identification and mapping of functional attributes from visual representation
JP6378263B2 (ja) イメージを用いた翻訳文提供方法、ユーザ端末、サーバ、システムおよびコンピュータプログラム
US11681417B2 (en) Accessibility verification and correction for digital content
US11709991B2 (en) Detecting truncation and overlap defects on webpage
KR102062069B1 (ko) 음성 명령 기반 매쉬업 서비스 생성 장치 및 그 방법
CN113419711A (zh) 页面引导方法、装置、电子设备及存储介质
CN114331932A (zh) 目标图像生成方法和装置、计算设备以及计算机存储介质
US11775773B2 (en) Methods for conducting a conversation in an application enabled by a virtual assistant server and devices thereof
KR20150040483A (ko) 웹 앱 개발 장치, 방법 및 컴퓨터로 판독 가능한 기록 매체
US20240126978A1 (en) Determining attributes for elements of displayable content and adding them to an accessibility tree
JP2019016072A (ja) 情報処理装置及びプログラム