A system (100, 100B, 100C, 200, 300, 325, 700, 800) for outputting haptic effects, comprising: a first sensor configured to: detect a user interaction with a graphical user interface element on a touch surface (116, 202, 702, 802) and transmit a first sensor signal associated with the user interaction; a second sensor (110, 130) configured to: detect a feature which impacts a user's perception of haptic effects and transmit a second sensor signal associated with the feature; a processor in communication with the first sensor and the second sensor, the processor configured to: determine a first haptic effect based on the user interaction; determine a modified haptic effect based at least in part on the first haptic effect and configured to compensate for the feature, and output a haptic signal associated with the modified haptic effect; and a haptic output device (118, 218, 222) in communication with the processor and coupled to the touch surface, the haptic output device configured to receive the haptic signal and output the modified haptic effect to the touch surface; wherein detecting the feature comprises: determining by the second sensor: (i) when a user has applied a pressure to the touch surface exceeding a first threshold, or (ii) when a user has applied a pressure on the touch surface less than a second threshold, wherein the second threshold is lower than the first threshold, and the processor is configured to compensate for the detected feature by determining a higher intensity for the modified haptic effect; and wherein the haptic output device (118, 218, 222) comprises an electrostatic actuator and an ultrasonic frequency actuator and: a) power is output to the electrostatic actuator only when the graphical user interface element is associated with a high coefficient of friction and b) power is output to the ultrasonic frequency actuator only when the graphical user interface element is associated with a low coefficient of friction; whereby the system provides the intended haptic effect over an increased range of user-applied pressures on the touch surface. a first sensor configured to: detect a user interaction with a graphical user interface element on a touch surface (116, 202, 702, 802) and transmit a first sensor signal associated with the user interaction; detect a user interaction with a graphical user interface element on a touch surface (116, 202, 702, 802) and transmit a first sensor signal associated with the user interaction; a second sensor (110, 130) configured to: detect a feature which impacts a user's perception of haptic effects and transmit a second sensor signal associated with the feature; detect a feature which impacts a user's perception of haptic effects and transmit a second sensor signal associated with the feature; a processor in communication with the first sensor and the second sensor, the processor configured to: determine a first haptic effect based on the user interaction; determine a modified haptic effect based at least in part on the first haptic effect and configured to compensate for the feature, and output a haptic signal associated with the modified haptic effect; and determine a first haptic effect based on the user interaction; determine a modified haptic effect based at least in part on the first haptic effect and configured to compensate for the feature, and output a haptic signal associated with the modified haptic effect; and a haptic output device (118, 218, 222) in communication with the processor and coupled to the touch surface, the haptic output device configured to receive the haptic signal and output the modified haptic effect to the touch surface; wherein detecting the feature comprises: determining by the second sensor: (i) when a user has applied a pressure to the touch surface exceeding a first threshold, or (ii) when a user has applied a pressure on the touch surface less than a second threshold, wherein the second threshold is lower than the first threshold, and determining by the second sensor: (i) when a user has applied a pressure to the touch surface exceeding a first threshold, or (ii) when a user has applied a pressure on the touch surface less than a second threshold, wherein the second threshold is lower than the first threshold, and (i) when a user has applied a pressure to the touch surface exceeding a first threshold, or (ii) when a user has applied a pressure on the touch surface less than a second threshold, wherein the second threshold is lower than the first threshold, and the processor is configured to compensate for the detected feature by determining a higher intensity for the modified haptic effect; and wherein the haptic output device (118, 218, 222) comprises an electrostatic actuator and an ultrasonic frequency actuator and: a) power is output to the electrostatic actuator only when the graphical user interface element is associated with a high coefficient of friction and b) power is output to the ultrasonic frequency actuator only when the graphical user interface element is associated with a low coefficient of friction; a) power is output to the electrostatic actuator only when the graphical user interface element is associated with a high coefficient of friction and b) power is output to the ultrasonic frequency actuator only when the graphical user interface element is associated with a low coefficient of friction; whereby the system provides the intended haptic effect over an increased range of user-applied pressures on the touch surface.