A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which, when executed by an electronic device with a display, one or more input devices, and one or more tactile output generators, cause the device to:
- display, on the display, a user interface for a first software application, wherein:
- the user interface includes a plurality of elements to which user interaction models from a plurality of user interaction models provided by an application-independent module have been assigned, the plurality of elements including a first element to which a first user interaction model has been assigned, the plurality of elements having content provided by an application-specific module for the first software application;
- and
- the first user interaction model defines how the user interface responds to inputs directed to the first element of the user interface;
- while displaying the user interface, detect, via the one or more input devices, an input directed to the first element of the user interface;
- and
- in response to detecting the input:
- update the user interface on the display based on characteristics of the input;
- and
- in accordance with a determination, by the application-independent module, that the input meets tactile output criteria specified by the first user interaction model, generate a first tactile output corresponding to the input;
- and
- in accordance with a determination, by the application-independent module, that the input does not meet the tactile output criteria specified by the first user interaction model, forgo generation of the first tactile output.