W3C

[DRAFT] MiniApps Working Group Charter

This is a draft MiniApps Working Group charter for discussion. It has no standing.

The mission of the MiniApps Working Group is to produce specifications that facilitate the development of interoperable and robust MiniApps.

Join the MiniApps Working Group.

This proposed charter is available on GitHub. Feel free to raise issues.

End date 2023-01-20
Chairs Qing An (Alibaba), Zitao Wang (Huawei), Dan Zhou (Baidu)
Team Contact
Fuqiao Xue (0.2 FTE)
Usual Meeting Schedule Teleconferences: topic-specific calls may be held
Face-to-face: at least 1 per year

Mission

MiniApp as a new form of mobile application, leveraging both Web technologies (especially CSS and JavaScript) as well as capabilities of native applications, is gaining more and more popularity in the globe. To enhance the interoperability between MiniApp platforms and the Web, and between different MiniApp platforms (applications or operating systems that are hosts to MiniApps), mainstream MiniApp vendors and related stakeholders have been working together in W3C Chinese Web Interest Group since May 2019 and published a MiniApp Standardization White Paper in September 2019 as the initial standardization exploration for MiniApp technologies. As more global companies get interested in joining the MiniApp related discussion, the MiniApps Ecosystem Community Group was proposed and approved during TPAC 2019 so that the global Web community can join the discussion.

During the exploration phase, potential standard requirements have been identified due to the unique nature of MiniApp in comparison to the typical Web environment. Substantial research work and joint discussion with related W3C groups have been conducted to clarify the requirements and possible solutions for MiniApp standardization. For instance, the hosting platform may or may not be a browser, and the application construction may or may not be based on web resources. Therefore different but relevant technologies are used for UI configuration and rendering, resource packaging, and the API access to local system capabilities. Such cases have not been fully covered by existing Web standards such as Web Packaging, Web App Manifest, or Web APIs.

The MiniApps Working Group aims to harmonize the heterogeneous MiniApp ecosystem, enabling interoperability among the different MiniApp platforms, maximizing the convergence of MiniApps and the World Wide Web, reducing the development costs and facilitating the adoption of this technology.

Scope

The work will be based on the specifications incubated in the MiniApps Ecosystem Community Group for MiniApp features, which include the following:

  1. Basic architecture and essential functions of MiniApp such as the Manifest, Packaging, Addressing, and Lifecycle, as indicated in the Deliverables section;
  2. MiniApp UI components (encapsulated reusable code for rendering a part of the UI), component-associated APIs, and a page layout template mechanism that would enhance the interoperability among different MiniApp platforms and the Web. Other components and APIs may be included by rechartering the WG scope as the incubation result from the MiniApp Community Group.
  3. Coordination with other W3C efforts, especially security, privacy, accessibility, internationalization and other Webapp APIs including Progressive Web Apps, on the commonality of the Web.

Out of Scope

The Working Group will not:

Deliverables

Normative Specifications

The Working Group will deliver the following W3C normative specifications:

MiniApp Manifest

This specification defines a JSON-based manifest document that enables developers to set up descriptive information, window styling, page routing, feature policies, and other information of a MiniApp. The MiniApp Manifest specification will follow the recommendations of the Web Platform Design Principles to extend the Web App Manifest.

Draft state: In progress in MiniApp CG

Adopted Draft: https://w3c.github.io/miniapp/specs/manifest/

MiniApp Packaging

This specification defines the standardized MiniApp package structure and its construction method. The MiniApp package file includes all the application assets such as document templates, components, stylesheets, scripts, internationalization resources, security resources, and the manifest file. The MiniApps Working Group aims at defining a MiniApp package format to be processed by various runtime environment.

Draft state: In progress in MiniApp CG

Adopted Draft: https://w3c.github.io/miniapp/specs/packaging/

MiniApp Lifecycle

This specification defines the MiniApp lifecycle events and the process that enables developers to manage the lifecycle events of both MiniApp application lifecycle and each MiniApp page's lifecycle. MiniApp application lifecycle includes a set of events, including application initialization, application running in foreground, application running in background. MiniApp page lifecycle includes a set of events, including page loading, page first rendering ready, page running in foreground, page running in background and page unloading. Whenever possible, the specification should provide a mapping to existing Web specifications such as Service Workers and Page Visibility.

Draft state: In progress in MiniApp CG

Adopted Draft: https://w3c.github.io/miniapp/specs/lifecycle/

New Recommendation-track deliverables

If additional in-scope Recommendation-track deliverables need to be added to the Charter before the Charter expires, the Working Group will prepare an updated Charter that differs only in deliverables.

The Working Group will not adopt new proposals until they have matured through the MiniApps Ecosystem Community Group.

Other Deliverables

MiniApp Addressing

This document defines a MiniApp URI Deep Link solution that will work across various MiniApp platforms, with reference to existing URI standard work in W3C and related standard bodies.

Draft state: In progress in MiniApp CG

Adopted Draft: https://w3c.github.io/miniapp/specs/uri/

MiniApp Widget Requirements

This document describes the requirements for MiniApp widgets, a special form of MiniApp pages.

Draft state: In progress in MiniApp CG

Adopted Draft: https://w3c.github.io/miniapp/specs/widget-req/

Timeline

Milestones
Specification FPWD CR PR Rec
MiniApp Manifest Q1 2021 Q4 2021 Q3 2022 Q4 2022
MiniApp Packaging Q2 2021 Q4 2021 Q3 2022 Q4 2022
MiniApp Lifecycle Q1 2021 Q4 2021 Q3 2022 Q4 2022
MiniApp Addressing Q1 2021
Widget Requirement Q1 2021

Note: The actual production of some of the deliverables may follow a different timeline.

Success Criteria

To advance to Proposed Recommendation, each specification must have two independent implementations of all defined features.

Comprehensive test suites will be developed for each specification to ensure interoperability, and the group will create interoperability reports. The group will also maintain errata as required for the continued relevance and usefulness of the specifications it produces.

Each specification must contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximizing accessibility in implementations.

Each specification must detail all known security and privacy implications for implementers, Web authors, and end users.

APIs shall be demonstrated to be implementable securely before released.

Coordination

W3C Groups

For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, performance, privacy, and security with the relevant Working and Interest Groups, and with the TAG. The WG will seek input into accessibility user requirements. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.

Additional technical coordination with the following Groups will be made, per the W3C Process Document:

MiniApps Ecosystem Community Group
The MiniApps Ecosystem Community Group will provide the seed specifications to begin the standards process. In addition, the MiniApps Working Group plans to partner closely with the MiniApps Ecosystem Community Group to incubate new features - in particular, incubation of features that are out of current scope for the working group will happen in the Community Group, and then be followed by future WG rechartering to include them in scope.
Web Application Security Working Group
The Web Application Security Working Group is developing an API to manage permissions, which is related to this group's specifications, such as the permission information in the manifest.
Web Applications Working Group
The group coordinates with the Web Applications Working Group to ensure the consistency of the MiniApp Manifest and the Web App Manifest.
Web Platform Incubator Community Group
The Web Platform Incubator Community Group provides a lightweight venue for proposing, incubating and discussing new web platform features. The MiniApps WG coordinates with the WICG to ensure MiniApp leverages existing proposals in the WICG as much as possible.
Web Performance Working Group
The Web Performance Working Group develops the Page Visibility specification, whose features are related to those in the MiniApp Lifecycle specification.
Service Workers Working Group
The Service Workers Working Group develops the Service Workers specification, whose features are related to those in the MiniApp Lifecycle specification.
Cascading Style Sheets (CSS) Working Group
The CSS Working Group develops mechanisms for adding style to components in Web applications, which is related to the potential UI component standardization in the group.

External Groups

The following is a tentative list of external bodies the Working Group should collaborate with:

WHATWG
The WHATWG maintains the HTML and DOM Standards, which are related to the UI components work in this WG.

Participation

To be successful, this Working Group is expected to have 6 or more active participants for its duration, and to have the participation of the industry leaders in fields relevant to the specifications it produces.

The Chair(s) and specification Editors are expected to contribute one to two days per week towards the Working Group. There is no minimum requirement for other participants.

Based on the input from the group participants, the Chairs may also decide to create task forces that allow more focused discussions for topics that require specific expertise.

This Working Group will also allocate the necessary resources for building Test Suites for each specification.

The group encourages questions and comments on its public mailing lists and document repositories, as described in Communication.

The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.

Participants in the group are required (by the W3C Process) to follow the W3C Code of Ethics and Professional Conduct.

Communication

Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed on a public repository, and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.

Information about the group (for example, details about deliverables, issues, actions, status, participants) is available from the MiniApps Working Group home page.

The Working Group’s Teleconferences focus on discussion of particular specifications, and are conducted on an as-needed basis. The minimum time required for notice of an ad-hoc teleconference should be 3 working days.

This group primarily conducts its technical work on the public-miniapps-wg@w3.org and on GitHub issues. Other communication tools are allowed if 80% of the group participants decide to embrace them. Any decision to use other communication tools must be reevaluated if further W3C Members join the Working Group. The public is invited to review, discuss and contribute to this work.

The group uses a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and participants of the group, for Member-only discussions in special cases when a particular participant requests such a discussion.

Decision Policy

This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 3.3). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.

However, if a decision is necessary for timely progress, but consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote, and record a decision along with any objections.

To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email and/or web-based survey), with a response period from 5 to 10 working days, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised on the mailing list by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.

All decisions made by the group should be considered resolved unless and until new information becomes available, or unless reopened at the discretion of the Chairs or the Director.

This charter is written in accordance with the W3C Process Document (Section 3.4, Votes), and includes no voting procedures beyond what the Process Document requires.

Patent Policy

This Working Group operates under the W3C Patent Policy (15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Recommendations that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the W3C Patent Policy Implementation.

Licensing

This Working Group will use the W3C Software and Document license for all its deliverables.

About this Charter

This charter for this Working Group has been created according to section 5.2 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.

Charter history

The following table lists details of all changes from the initial charter, per the W3C Process Document (section 5.2.3):

Charter Period Start Date End Date Changes
Initial Charter 19 January 2021 20 January 2023
  • 2021-10: Yongjing Zhang stepped down, Zitao Wang appointed as co-chair.
  • 2021-11: Anqi Li stepped down, Qing An appointed as co-chair.
  • 2022-03: Ming Zu stepped down, Dan Zhou appointed as co-chair.

Fuqiao Xue